How to add x64 (or Any CPU) as a build option in Visual Studio 2010 (from console application to class library)
Asked Answered
V

2

17

Initially, I created a console application using Mass Transit as my service bus. Recently, I switched to NServiceBus, which doesn't require you to make a console application, but a class library instead. In the project properties, I simply switched the setting that changes it from a console application to a library, but the constraint that you can only build it for x86 is still in effect.

I can't change the build type to Any CPU now that it is a console application, which should now be valid. Is there any way to completely change my application to a class library so that I can run the build Any CPU option? Do I need to create a new project, copy files into it and continue that way? Or is it as simple as changing something in the project (.proj) file?

The Stack Overflow question Missing Debug|Any CPU build configuration for projects and defaulting to Debug|x86 on Windows x64 gives more context around this issue of x86 only for console applications.

Valance answered 30/11, 2011 at 21:53 Comment(2)
You are battling a very basically dumb design decision in VS2010, every project you add to your solution defaults to a platform target of x86. Even class libraries, the kind that have no say over what the EXE project selected. Just flip the setting back to AnyCPU.Squilgee
@Hans... no, only projects that generate EXEs default to x86, because MS has determined that architecture-neutral EXEs are usually more trouble than they're worth. 32-bit applications have access to more features and are usually a little faster than 64-bit applications, so that's the default. The beta versions had a bug that defaulted all projects to x86, but the newest versions default class libraries to Any CPU.Godthaab
G
21

You just need to add a configuration for Any CPU in the configuration manager.

1) Right-click the solution and select Properties

2) Select Configuration Properties, then click Configuration Manager...

3) Change the Active Solution platform to Any CPU. If there is no Any CPU platform, skip to #4.

4) Click the arrow in the combo box under the Platform column for your class library, and select New...

5) Make sure "Any CPU" is selected under New Platform. If there was no Any CPU solution platform in step 3, then make sure the "Create new solutions platform" checkbox is checked. Then click OK.

6) Check the checkbox in the "Build" column for your class library

7) Close out of the Configuration Manager, and open the properties for your class library

8) Select Any CPU for Platform, then select Any CPU for Platform target, and save.

(Step 8 may or may not be necessary, depending on what has been done with the configurations previously.)

Godthaab answered 30/11, 2011 at 23:9 Comment(5)
Do you know of a way to do this by default for all new console programs?Lightweight
I can't create AnyCPU because I get error that this configuration already exists, but I can't select it for console app.Dogear
@Dogear unchecking the "Create new solutions platform" check box worked for me.Theresiatheresina
@Gerald, i wanted to have x64, at Step 4, i don't see 'new' item in combo box menu (under platform column) hence unable to build for 64bit. any workarounds?Bunyabunya
I had the same problem with EmguCV in visual studio 2015 community edition there are two projects Emgu.CV.UI and Emgu.CV.World . for UI there is 'new' option, but its missing for WorldRand
C
-1

Just add a configuration for Any CPU in the configuration manager.

  1. Right-click the solution and select Properties.

  2. Select Configuration Properties, then click Configuration Manager.

  3. Change the Active Solution platform to Any CPU. If there is no Any CPU platform, go ahead to step 4.

  4. Click the arrow in the combo box under the Platform column for your class library, and select New.

  5. Make sure Any CPU is selected under New Platform. If there was no Any CPU solution platform in step 3, then make sure the "Create new solutions platform" checkbox is checked. Then click OK.

  6. Check the checkbox in the "Build" column for your class library

  7. Close out of the Configuration Manager, and open the properties for your class library

  8. Select Any CPU for Platform, then select Any CPU for Platform target, and save.

Step 8 may or may not be necessary, depending on what has been done with the configurations previously.

Clapboard answered 30/8, 2017 at 6:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.