Tuesday, March 06, 2012 12:02 AM
After building the C++ GridView template application (unchanged) for Win32 and creating an x86 local deployment package, we are unable to install it on x86 machines using the created BAT file. The development license is accepted, but following message is displayed:
Cannot install package
Microsoft.VCLibs.110 because the package requires architecture x64, but this machine is architecture x86
Why is the package using x64 components when it was built for x86?
Tuesday, March 06, 2012 1:36 AMModerator
Your terminology doesn't quite match what is in the Consumer Preview and VS11 beta, so I'm not sure if you were paraphrasing or if you're doing something different. Are you writing a Metro style app with Visual Studio 11 Beta on the Windows 8 Consumer Preview? When you say you create a deployment package do you mean you are creating an app package? Can you provide exact repro steps?
When I create a default C++ Metro style Grid Application, build it for x86, and then go to Project.Store.Create App Package... and create an x86 Debug (Any CPU) package I get the expected x86 package. Do you get something different? Or does the problem occur when you take that x86 package and try to install it on a different system?
C:\test\GridTest\GridTest\AppPackages>dir Volume in drive C is OSDisk Volume Serial Number is 1E4B-1DF1 Directory of C:\dev\GridTest\GridTest\AppPackages 03/05/2012 05:26 PM <DIR> . 03/05/2012 05:26 PM <DIR> .. 03/05/2012 05:26 PM 53,089 GridTest_188.8.131.52_x86_Debug.appxupload 03/05/2012 05:26 PM <DIR> GridTest_184.108.40.206_x86_Debug_Test 1 File(s) 53,089 bytes 3 Dir(s) 444,006,256,640 bytes free--Rob
Tuesday, March 06, 2012 2:16 AM
We're building the unchanged grid application on an x64 machine under Win8 Consumer Preview using the VS11 beta. We build the Win32 debug version, then use Project.Store.Create App Package, select "use locally only", then x86 Debug (although ours says "Win32, not "Any CPU"). The package is created as we expect.
The problem occurs when we attempt to install on a different machine, which happens to be 32 bits.
Thursday, March 08, 2012 6:57 AMModerator
When we use VS11 generate the APP deploy package in a 64bit Windows, both x64 and x86 VClib assemblies are copied into .\Dependencies folder, even your target configuration is Win32(x86).
The Add-AppexDevPackage is a powershell script file which help you deploy the application to the Metro desktop. It also will help install all the framework packages contained in .\Dependencies.
Since both 64bit and 32bit packages are in .\Dependencies, the script will try to install them one by one. If we deploy the app in 32bit windows, the following error will be shown, which is expected.
You can skip this message and the application should be deployed correctly.
If you want override such message, you can just remove the 32bit assembly from .\Dependencies folder.
Yi Feng Li [MSFT]
MSDN Community Support | Feedback to us
- Marked As Answer by cdunford Thursday, March 08, 2012 9:19 PM
Thursday, March 08, 2012 9:22 PM
Removing the x64 package resolved the problem.
I want to emphasize, though, that this issue wasn't just the message--the app did not install correctly with the x64 package present. It would not install until the package was removed.
Thanks for the help.