应用程序格式不正确

时间:2014-12-15 18:06:25

标签: clickonce mage

启动ClickOnce设置时出现此错误。 它说'不能继续。应用程序格式不正确。'

编辑:这发生在Visual Studio 2013 Update 4(2013.4)之后

以下是我创建文件的方式:

mage -New Application -ToFile "$BinSingleEscape\Release\$ProductNameFile.exe.manifest" -Name "$ProductName" -Version $Version -FromDirectory "$BinSingleEscape\Release" -IconFile "Icon.ico" -SupportURL "$SupportUrl" -UseManifestForTrust true -Publisher "$PublisherCompany" -TimestampUri http://timestamp.verisign.com/scripts/timstamp.dll

mage -Sign "$BinSingleEscape\Release\$ProductNameFile.exe.manifest" -CertHash "d00...66f" -TimestampUri http://timestamp.verisign.com/scripts/timstamp.dll

mage -New Deployment -Install true -AppCodeBase "$Version\$ProductNameFile.exe.manifest" -Name "$ProductNameFile" -Publisher "$PublisherCompany" -AppManifest "$BinSingleEscape\Release\$ProductNameFile.exe.manifest" -ProviderUrl "$InstallUrl/$ProductNameFile.application" -Version $Version -ToFile "$BinSingleEscape\Deploy\$ProductNameFile.application" -SupportURL "$SupportUrl" -TimestampUri http://timestamp.verisign.com/scripts/timstamp.dll

mage -Sign "$BinSingleEscape\Deploy\$ProductNameFile.application" -CertHash "d00...66f" -TimestampUri http://timestamp.verisign.com/scripts/timstamp.dll

错误的详细信息:

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of http://downloads...App.application resulted in exception. Following failure messages were detected:
        + Exception reading manifest from http://downloads....App.exe.manifest: the manifest may not be valid or the file could not be opened.
        + Parsing and DOM creation of the manifest resulted in error. Following parsing errors were noticed: 
            -HRESULT:   0x80070c81
             Start line:    0
             Start column:  0
             Host file:     
        + Exception from HRESULT: 0x80070C81

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [15.12.2014 18:50:01] : Activation of http://downloads....App.application has started.
    * [15.12.2014 18:50:01] : Processing of deployment manifest has successfully completed.
    * [15.12.2014 18:50:01] : Installation of the application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [15.12.2014 18:50:02] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
        - Exception reading manifest from http://downloads....App.exe.manifest: the manifest may not be valid or the file could not be opened.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
            at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
            at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, Uri& appSourceUri, String& appManifestPath)
            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.Deployment.Application.InvalidDeploymentException (ManifestParse)
        - Parsing and DOM creation of the manifest resulted in error. Following parsing errors were noticed: 
            -HRESULT:   0x80070c81
             Start line:    0
             Start column:  0
             Host file:     
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)
            at System.Deployment.Application.Manifest.AssemblyManifest..ctor(FileStream fileStream)
            at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
        --- Inner Exception ---
        System.Runtime.InteropServices.COMException
        - Exception from HRESULT: 0x80070C81
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Internal.Isolation.IsolationInterop.CreateCMSFromXml(Byte[] buffer, UInt32 bufferSize, IManifestParseErrorCallback Callback, Guid& riid)
            at System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)

1 个答案:

答案 0 :(得分:3)

问题是,ClickOnce部署中有两个具有相同签名的程序集。

Visual Studio创建(在2013.4更新之后)一个名为' app.publish'的文件夹。其中包含主要装配的副本。

通过跑步   法师[...] -FromDirectory"发布" 它包括app.publish目录中的主程序集和主程序集的副本。

我在运行mage之前删除app.publish文件夹解决了这个问题。