I get this error while starting the ClickOnce setup. It says 'Cannot continue. The application is improperly formatted.'
EDIT: This happened after the Visual Studio 2013 Update 4 (2013.4)
Here's how I create the files:
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
The details of the error:
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)
The problem was, that there were two assemblies with the same signature in the ClickOnce deployment.
Visual Studio creates (after the 2013.4-update) a folder called 'app.publish' which contains the a copy of the main assembly.
By running mage [...] -FromDirectory "Release" it included the main assembly and the copy of the main assembly from the app.publish directory.
I solved this by deleting the app.publish folder before running mage.