locked
Cannot continue. The application is improperly formatted. Trying to change target platfrom from "All CPU" to "x86" RRS feed

  • Question

  • Need help figuring this out. I chose this forum because it most closely sounds like the category. But it's not exactly. I do not know a better place to post this.

    TFS server builds application just fine. TFS server deploys it just fine.

    Installing on 32-bit software on 64-bit systems is not fine. However, building and running locally is fine.

    1. I created x86 platform profile for all Projects and for the Solution.

    2. I configure the Builder to use the x86 platform for the target.

    3. I configure the Deploy to deploy the x86 build.

    4. I try to upgrade (as a user) the software. Two ways: either run the app, letting the app check for updates, or navigating to setup.exe on the server and running it.

    I get this:

    ERROR SUMMARY
     Below is a summary of the errors, details of these errors are listed later in the log.
     * Activation of C:\Users\rvantreese\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Houston Police Officer Pension System\Fusion (QA).appref-ms| resulted in exception. Following failure messages were detected:
      + Exception reading manifest from http://tfs03/PublishedApps/Fusion/QA//ReleaseBuild_Main_20140416.3_QA/Fusion_QA.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.

    I did verify before deploying that 32-bit both x86\Debug and x86\Release will (and did) run on my 64-bit system. Ultimately, we have a component that has a 32-bit limitation, thus the effort going to rebuilding software to 32-bit.

    So now it comes down to this: that Setup does not like to install a 32-bit software onto a 64-bit system. Why not?

    • Moved by Cece Dong Friday, May 9, 2014 6:38 AM move to appropriate forum
    Thursday, May 8, 2014 4:11 PM

All replies

  • Hi Violoncello Passionato,

    I checked this issue and it seems it is not related to TFS build and deploy steps.

    I am not sure if you are using setup project to create this setup. If so, please notice that MSI created by the setup project (in Visual Studio) can only target one platform at a time. If you need your setup run on x64 then that target should be set to X64 but not x86. Please try change it to see the result.

    Regards,



    Barry Wang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Friday, May 9, 2014 6:45 AM
  • Are you saying that it is impossible to install x86 software on a 64-bit system?

    The setup, I believe, comes from Visual Studio. I didn't create it; I inherited it when I was hired. I say "I believe it was from Visual Studio" because it looks/feels/acts like the setup from Visual Studio.

    I can "hack" a solution by taking a USB disk to each PC and installing a 32-bit software manually, and it will run. But it's a "HACK" that I want to avoid, if possible.

    Friday, May 9, 2014 5:19 PM
  • One more thing... MAGE is used to build the manifest file. (Just in case you needed to know this.)


    VP

    Friday, May 9, 2014 6:32 PM
  • Hi VP,

    So you may just want to show that you are using ClickOnce from your last post. And sorry for haven't notice your file format appref-ms which is actually related to ClickOnce. I know that both MAGE and MAGEUI can edit manifest file like this page mentioned:http://msdn.microsoft.com/en-us/library/acz3y3te(v=vs.110).aspx

    ------------------------------------------------------------------------------------------------------

    What I mean is like this thread mentioned:

    http://social.msdn.microsoft.com/Forums/windows/en-US/36de2ad2-ccfe-4832-ac42-680731692d7b/how-to-create-single-installer-msi-or-msm-for-both-32bit-and-64bit-machines?forum=winformssetup

    "A Windows Installer package must be specified as either a 32-bit or a 64-bit package; it cannot be specified as neutral. A 64-bit package consists partially or entirely of 64-bit Windows Installer components while a 32-bit package consists of only 32-bit Windows Installer components."

    You can search for "msi for both 32 and 64 bit" for some details, it is about MSI deployment.

    ------------------------------------------------------------------------------------------------------

    For ClickOnce deployment, why not just set the platform target to All CPU instead of x86? 32 bit application can be installed on x64, the sample is Visual Studio, it is a 32 bit application and can be installed on any OS. But application is application, setup is setup, setup will need to install prerequisite and may other things which may choose proper prerequisite to install. That target can help you finish this. A blog writes the following for you to check:

    http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

    Regards,



    Barry Wang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Thursday, May 15, 2014 9:28 AM
  • For ClickOnce deployment, why not just set the platform target to All CPU instead of x86? 32 bit application can be installed on x64, the sample is Visual Studio, it is a 32 bit application and can be installed on any OS. But application is application, setup is setup, setup will need to install prerequisite and may other things which may choose proper prerequisite to install. That target can help you finish this. A blog writes the following for you to check:

    http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

    First, this link is broken. I get HTTP: 500.

    Second, here's why not All CPU... Our software uses OnBase, a 32-bit documentation software. With All CPU as a target, it installs as 32-bit on a 32-bit system, with 32-bit OnBase. All is well. With All CPU as target, it installs as 64-bit on a 64-bit system, with 32-bit OnBase. The 64-bit software can't use 32-bit OnBase.



    VP

    Sunday, May 18, 2014 3:11 AM
  • Hi VP,

    So you may just want to show that you are using ClickOnce from your last post. And sorry for haven't notice your file format appref-ms which is actually related to ClickOnce. I know that both MAGE and MAGEUI can edit manifest file like this page mentioned:http://msdn.microsoft.com/en-us/library/acz3y3te(v=vs.110).aspx

    I used ClickOnce to build locally on my PC. I also made the configuration on the TFS server to build on the server. I set it to build for x86 instead of All CPU. All seemed well. Then I deployed. All still seemed well. Then I run setup. Not well because my PC is 64-bit. Why is it not well?

    And you want to see my appref-ms? I'll look for it on Monday.



    VP

    Sunday, May 18, 2014 3:15 AM
  • The link on my side can be opened without problem, odd problem. Nevermind, after checking this case carefully I think the platform target is not the reason and we should focus on the error message:

    "Specified <entryPoint> is not valid. Check that the path to the entrypoint is well-formed and the entrypoint exists in the deployment."

    As the error message mentioned, appref-ms is not what we need to check, the manifest should be the component what we should pay attention to.

    Then I found three related cases and you may check them:

    1. http://stackoverflow.com/questions/8602070/creating-click-once-app-mage-exe-on-win7-64-bit-and-xp-32-bit

    2. http://social.msdn.microsoft.com/Forums/windows/en-US/9a457a22-8c74-4ef5-82b2-392b80ed2fcc/clickonce-manifest-exception?forum=winformssetup

    3. http://social.msdn.microsoft.com/Forums/windows/en-US/e13aee6f-7545-4c0c-9f64-14af94aa2a5c/specified-entrypoint-is-not-valid-while-reading-application-manifest?forum=winformssetupLet's see if there solution helps on this issue. If not, here is a solution for x86 prerequisite on x64, although it is not the solution for your error:

    http://social.msdn.microsoft.com/Forums/en-US/82f2eb55-53f7-4562-9b47-542539c482d3/clickonce-deployment-32bit-app-on-64bit-client-with-prerequisites?forum=winformssetup

    It is a good idea for your issue in my mind so I share it.

    Regards,



    Barry Wang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Monday, May 19, 2014 3:22 AM
  • "Specified <entryPoint> is not valid. Check that the path to the entrypoint is well-formed and the entrypoint exists in the deployment."

    That's what I'm getting. I can't modify the "*.application" file without making it worse. I get this:

    Warning MSB3187: Referenced assembly 'RollingBuild_Main_20140519.1_Dev\Fusion_Dev.manifest' targets a different processor than the application.

    In TFSBuild.proj I tried this:

             <ConfigurationToBuild Include="Debug|x86">
                 <FlavorToBuild>Debug</FlavorToBuild>
                 <PlatformToBuild>x86</PlatformToBuild>
             </ConfigurationToBuild>

    But now I'm not convinced that it works. The structure is

    <Project ...> ...

      <ItemGroup>

          <ConfigurationToBuild ... > ... </ConfigurationToBuild>

       </ItemGroup>

    </Project>

    I tried following points 1, 2, 3. The 3rd one have several links which I can't follow. Perhaps you can help me by copying/pasting them here so I can read it straight here instead of following broken links and getting lost. :(

    What I'm reading so far is that they try things suggested, then they get other problems. "We're on a roll, now onto the *next* error", and I get those too. But ultimately they suggest a link that I can't follow.

    Finally, I don't have any file ending with "*.manifest". The files end with "*.application".


    VP

    Monday, May 19, 2014 6:37 PM
  • Are there any more suggestions?


    VP

    Wednesday, August 20, 2014 12:25 PM