【问题标题】:Clickonce exception with Excel Interop DLLExcel 互操作 DLL 的 Clickonce 异常
【发布时间】:2012-09-24 12:42:20
【问题描述】:

我们正在创建一个通过 Office 2007 PIA 使用 Excel 互操作的软件项目(VS 2010、.NET 3.5 SP1)。我们正在将其部署到 Internet 以进行 clickonce 安装。在大多数情况下,它工作得很好。但是最近一位客户在安装它时遇到了问题(请参阅下面的日志文件)。

据我在互联网上阅读发现,它可能在某种程度上与 PIA 被另一个应用程序注册有关。

谁能提供一些有用的提示(也许还有一些关于这个主题的阅读来源)?

非常感谢!

PLATFORM VERSION INFO
    Windows             : 6.1.7601.65536 (Win32NT)
    Common Language Runtime     : 4.0.30319.269
    System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
    clr.dll             : 4.0.30319.269 (RTMGDR.030319-2600)
    dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
    dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : http://***/***.application
                        Server      : Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
    Deployment Provider url     : http://***/***.application
                        Server      : Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
    Application url         : http://***/***.manifest
                        Server      : Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

IDENTITIES
    Deployment Identity     : ***, Version=1.1.0.893, Culture=neutral, PublicKeyToken=b5867eb738db6c5c, processorArchitecture=msil
    Application Identity        : ***, Version=1.1.0.893, Culture=neutral, PublicKeyToken=b5867eb738db6c5c, processorArchitecture=msil, type=win32

APPLICATION SUMMARY
    * Installable application.

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of http://***/***.application resulted in exception. Following failure messages were detected:
        + Exception occurred loading manifest from file Microsoft.Office.Interop.Excel.dll: the manifest may not be valid or the file could not be opened. 
        + File Microsoft.Office.Interop.Excel.dll is not a valid Portable Executable (PE) file.
        + File {0} is not a valid Portable Executable (PE) file.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [9/20/2012 2:44:56 PM] : Activation of http://***/***.application has started.
    * [9/20/2012 2:44:57 PM] : Processing of deployment manifest has successfully completed.
    * [9/20/2012 2:44:57 PM] : Installation of the application has started.
    * [9/20/2012 2:44:58 PM] : Processing of application manifest has successfully completed.
    * [9/20/2012 2:45:00 PM] : Found compatible runtime version 2.0.50727.
    * [9/20/2012 2:45:00 PM] : Detecting dependent assembly Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=msil using Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=msil.
    * [9/20/2012 2:45:00 PM] : Detecting dependent assembly System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil using System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil.
    * [9/20/2012 2:45:00 PM] : Detecting dependent assembly WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil using WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=msil.
    * [9/20/2012 2:45:00 PM] : Detecting dependent assembly System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil using System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil.
    * [9/20/2012 2:45:00 PM] : Detecting dependent assembly System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil using System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil.
    * [9/20/2012 2:45:00 PM] : Request of trust and detection of platform is complete.

ERROR DETAILS
    Following errors were detected during this operation.
    * [9/20/2012 2:45:34 PM] System.Deployment.Application.InvalidDeploymentException (ManifestLoad)
        - Exception occurred loading manifest from file Microsoft.Office.Interop.Excel.dll: the manifest may not be valid or the file could not be opened. 
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.Manifest.AssemblyManifest.ManifestLoadExceptionHelper(Exception exception, String filePath)
            at System.Deployment.Application.Manifest.AssemblyManifest.LoadFromInternalManifestFile(String filePath)
            at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
            at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
            at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
            at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
            at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
            at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
            at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
            at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
        --- Inner Exception ---
        System.IO.IOException
        - File Microsoft.Office.Interop.Excel.dll is not a valid Portable Executable (PE) file.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.PEStream.ConstructFromFile(String filePath, Boolean partialConstruct)
            at System.Deployment.Application.Manifest.AssemblyManifest.LoadFromInternalManifestFile(String filePath)
        --- Inner Exception ---
        System.ComponentModel.Win32Exception
        - File {0} is not a valid Portable Executable (PE) file.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.PEStream.DosHeader..ctor(FileStream file)
            at System.Deployment.Application.PEStream.ConstructPEImage(FileStream file, Boolean partialConstruct)
            at System.Deployment.Application.PEStream.ConstructFromFile(String filePath, Boolean partialConstruct)

COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available.

【问题讨论】:

  • 该机器上的 PIA 已损坏。这种文件损坏永远不会孤立,扔掉机器,这样它就不会占用您昂贵的时间。还有我们的。
  • 非常感谢您的回复。我会向我们的客户推荐这个。 :-)
  • 另一位客户今天报告了同样的问题。可能是一个不幸的巧合,但更有可能不是。还有其他想法吗?
  • 这个问题解决了吗?

标签: c# deployment clickonce excel-interop


【解决方案1】:

我们有一个与我们自己的 ClickOnce 应用程序几乎相同的日志文件,尽管它在下载第一个文件时失败(ClickOnce 似乎按字母顺序下载文件)。我们让用户将部署应用程序的域列入白名单,问题已得到解决。

https://answers.atlassian.com/questions/154127/sourcetree-for-windows-install.

在我的商店,ClickOnce 通常用于超级锁定的 IT 环境(工厂的机器只有我们的软件可用,用户甚至无法将文件保存到他们的桌面),因此将网站列入白名单可以解决一系列问题.

【讨论】:

  • 我遇到了同样的问题。我最终在本地安装,然后只是将 /Users/USER_NAME/AppData 中创建的文件夹部署到远程服务器。这工作得很好。程序集或应用程序中的构建没有实际问题。
【解决方案2】:

在这里复活一个死去的人,但由于我刚刚在一次部署中遇到了同样的事情,所以我也会加五分钱。

我的部署日志的输出和你的基本一样:

    * Activation of //***//.application resulted in exception. Following failure messages were detected:
    + Exception occurred loading manifest from file DevExpress.Utils.v17.1.UI.dll: the manifest may not be valid or the file could not be opened. 
    + File DevExpress.Utils.v17.1.UI.dll is not a valid Portable Executable (PE) file.
    + PE file does not have enough data.

我删除了对相关 dll 的引用,重新添加并再次发布。 这为我解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2013-03-04
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多