locked
Problem building solution for deployment to Surface RT

    Question

  • My solution consists of two projects, a library of controls and a test bed application. I set the target platform to ARM and when I go to build I get the following error:

    error MSB3271: There was a mismatch between the processor architecture of the project being built "ARM" and the processor architecture, "x86", of the implementation file "E:\Projects\xyz\xyzControls\Debug\xyzControls\xyzControls.dll" for "E:\Projects\xyz\xyzControls\Debug\xyzControls\xyzControls.winmd".

    This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and implementation file, or choose a winmd file with an implementation file that has a processor architecture which matches the targeted processor architecture of your project.

    I can't seem to get beyond the problem in order to test on an ARM system. I can build and deploy just fine with the Win32 target. I notice that when I change the setting for the project to target ARM the Deploy checkbox for the control assembly gets disabled in the configuration properties settings.

    Friday, February 22, 2013 3:43 AM

Answers

  • I was able to resolve this. I had to manually change the references of the application project to directly point to the ARM version of the component DLLs that were also part of the solution.  
    Wednesday, February 27, 2013 5:20 AM

All replies

  • Are you building both projects and the solution for ARM? It sounds like the xyzControls project is still being built for x86.

    --Rob

    Saturday, February 23, 2013 2:45 AM
    Owner
  • I'm setting the target for the projects to ARM at the solution level. Do I need to specify some settings on the project themselves?
    Saturday, February 23, 2013 6:29 AM
  • From the Debug menu, select Configuration Manager... . In the window that pops up, make sure that the "Active solution platform" is ARM and then verify that the Platform setting for each project is set to ARM. Do the same for all configurations (i.e. debug and release).

    If xyzControls is not part of the Solution but is built externally, you'll need to ensure that each Project Properties configuration and platform for the test bed is set to reference the correct version of xyzControls.


    XNA/DirectX MVP | Website | Blog | @mikebmcl

    Saturday, February 23, 2013 11:01 AM
  • From the Debug menu, select Configuration Manager... . In the window that pops up, make sure that the "Active solution platform" is ARM and then verify that the Platform setting for each project is set to ARM. Do the same for all configurations (i.e. debug and release).

    If xyzControls is not part of the Solution but is built externally, you'll need to ensure that each Project Properties configuration and platform for the test bed is set to reference the correct version of xyzControls.


    XNA/DirectX MVP | Website | Blog | @mikebmcl


    Thanks for the reply. I did that, resulting in the same error. Both the test bed application and control project are in the same solution. One thing I notice is that when I set Active solution platform to ARM then the Deploy checkbox is disabled for the control project.
    Saturday, February 23, 2013 4:08 PM
  • I was able to resolve this. I had to manually change the references of the application project to directly point to the ARM version of the component DLLs that were also part of the solution.  
    Wednesday, February 27, 2013 5:20 AM