Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a ClickOnce application (mage.exe) on Windows 7 64-bit and Windows XP 32-Bit

Tags:

.net

clickonce

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?

Error message

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
like image 647
Johannes Avatar asked Dec 22 '11 09:12

Johannes


People also ask

How do I get Mage exe?

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.

How do I deploy ClickOnce application?

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.

What is MageUI?

MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) - . NET Framework | Microsoft Learn.


1 Answers

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>
like image 159
Johannes Avatar answered Oct 04 '22 22:10

Johannes