My application creates a ClickOnce application via the command line tool Mage. If I build the ClickOnce application on Windows XP 32-bit (Visual Studio 2008), and double click the xxx.application file, it's working fine.
The same project run on Windows 7 64 bit (Visual Studio 2008), and the ClickOnce application is created fine, but starting the xx.application file generates an error (see below).
I'm using the MS-SDK 6.0A "...Program Files\Microsoft SDKs\Windows\v6.0A\Bin\mage.exe"
Why is this?
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.239
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.239 (RTMGDR.030319-2300)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : file:///C:/m4/branches/oebb2.2.0/Deployment/M4Desktop.application
IDENTITIES
Deployment Identity : M4Desktop.app, Version=2.2.0.26921,
Culture=neutral, PublicKeyToken=7825390df6ab8bb8,
processorArchitecture=msil
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 C:\m4\branches\oebb2.2.0\Deployment\M4Desktop.application resulted in
exception. Following failure messages were detected:
+ Exception reading manifest from file:///C:/m4/branches/oebb2.2.0/Deployment/M4Desktop_2.2.0.26921/M4Desktop.exe.manifest:
the manifest may not be valid or the file could not be opened.
+ Application manifest is not semantically valid.
+ Specified <entryPoint> is not valid. Check that the path to the entrypoint is
well-formed and the entrypoint exists in the deployment.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS * [22.12.2011 10:42:49] : Activation of
C:\m4\branches\oebb2.2.0\Deployment\M4Desktop.application has started.
* [22.12.2011 10:42:49] : Processing of deployment manifest has
successfully completed. * [22.12.2011 10:42:49] : Installation of the
application has started.
ERROR DETAILS Following errors were detected during this operation.
* [22.12.2011 10:42:49]
System.Deployment.Application.InvalidDeploymentException
(ManifestParse)
- Exception reading manifest from file:///C:/m4/branches/oebb2.2.0/Deployment/M4Desktop_2.2.0.26921/M4Desktop.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 (ManifestSemanticValidation)
- Application manifest is not semantically valid.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
--- Inner Exception ---
System.Deployment.Application.InvalidDeploymentException (InvalidManifest)
- Specified <entryPoint> is not valid. Check that the path to the entrypoint is well-formed and the entrypoint exists in the deployment.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()
COMPONENT STORE TRANSACTION DETAILS
This tool is automatically installed with Visual Studio. To run the tool, use Visual Studio Developer Command Prompt or Visual Studio Developer PowerShell. Two versions of Mage.exe and MageUI.exe are included with Visual Studio. To see version information, run MageUI.exe, select Help, and select About.
In the Specific target page, select ClickOnce. Enter a path or select Browse to select the publish location. In the Install location page, select where users will install the application from. In the Settings page, you can provide the settings necessary for ClickOnce.
MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) - . NET Framework | Microsoft Learn.
In my case the problem was non-matching values processorArchitecture
between the <assemblyIdentity>
and <entryPoint>
tags.
When generating the manifest via command line Mage I didn't add the -p x86
option.
Some DLL files included in the ClickOnce application where built with x86 solution
, but Mage generated assemblyIdentity
with processorArchitecture=x86
by default.
I'm working with both Visual Studio 2008 on Windows 7 64-bit and also Windows XP 32-bit.
See below for relevant parts of the manifest file.
Not working manifest
<asmv1:assemblyIdentity
name="M4Desktop.exe"
version="2.2.0.27055"
publicKeyToken="7825390df6ab8bb8"
language="neutral"
processorArchitecture="msil"
type="win32" />
<application />
<entryPoint>
<assemblyIdentity
name="M4DesktopUpdater"
version="1.0.0.0"
publicKeyToken="D2F6EAED73E3B4FE"
language="neutral"
processorArchitecture="x86" />
<commandLine
file="M4DesktopUpdater.exe"
parameters="" />
</entryPoint>
Working manifest
<asmv1:assemblyIdentity
name="M4Desktop.exe"
version="2.2.0.27055"
publicKeyToken="7825390df6ab8bb8"
language="neutral"
processorArchitecture="x86"
type="win32" />
<application />
<entryPoint>
<assemblyIdentity
name="M4DesktopUpdater"
version="1.0.0.0"
publicKeyToken="D2F6EAED73E3B4FE"
language="neutral"
processorArchitecture="x86" />
<commandLine
file="M4DesktopUpdater.exe"
parameters="" />
</entryPoint>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With