标签: anycpu

C#编译32/64位,还是任何cpu?

可能重复:
Visual Studio"任何CPU"目标

我注意到在VS中编译C#代码时,通常有编译32/64位系统的选项,还有一个用于编译任何cpu的选项.

这两个选项有什么区别?选择任何CPU只能编译为中间字节代码,而第一个选项编译为机器代码(这听起来不太可能)?或者是其他东西?

.net 64-bit assemblies 32bit-64bit anycpu

68
推荐指数
2
解决办法
6万
查看次数

在Visual Studio 2010 Express中更改目标CPU设置

我希望在Visual Studio 2010中将目标CPU设置从"任何CPU"更改为"x86".

我在另一个网站上看到我需要做以下事情:

  1. 转到程序的启动项目.
  2. 打开属性窗口.
  3. 单击编译选项卡.
  4. 单击高级编译选项.
  5. 将目标CPU选项更改为x86.

但是我没有在属性中的任何地方看到"编译"选项卡.

请尽早帮助我.

更新:我确实看到了一个平台下拉列表,但除了"任何CPU"之外什么都没有,

平台除了.

x86 visual-studio-2010 visual-studio anycpu

29
推荐指数
2
解决办法
7万
查看次数

从命令行使用devenv.exe并指定平台

我正在尝试使用命令行中的devenv.exe编译可视化工作室解决方案.我可以让它工作,但解决方案中的所有项目都是为AnyCPU编译的,我希望它们可以为x86编译.对于所有项目,调试和发布配置都设置为x86.

当我在IDE中编译时它工作正常.但是当我尝试从命令行构建解决方案时,它总是为AnyCPU构建所有项目.有没有办法让devenv.exe只在x86中构建?

我们正在使用Visual Studio 2012

x86 devenv anycpu

26
推荐指数
1
解决办法
3万
查看次数

在切换'首选32位时 - 使用64位操作系统上的接口和泛型的奇怪调试器行为

我也碰到过这种奇怪的行为:当我的项目设置设为Any CPUPrefer 32-bit64bit Windows 7 OS.Net 4.5下面的工程计划符合市场预期.然而,如果我关闭Prefer 32-bit然后在单步执行程序时,我可以看到代码从不进入接口实现 - 但也不会抛出任何错误.

我在以下控制台应用程序中将其简化为最简单的形式:

namespace BugCheck
{
    interface IBroken
    {
        bool Broken<TValue> (TValue gen, Large large);
    }
    class Broke : IBroken
    {
        public bool Broken<TValue> (TValue gen, Large large )
        { return true; }
    }
    struct Large
    {
        int a, b, c;
    }
    class Program
    {
        static void Main (string[] args)
        {
            //32bit can step in. 64bit can't
            ((IBroken)new Broke()).Broken(1, new Large());
        } …
Run Code Online (Sandbox Code Playgroud)

c# generics anycpu .net-4.5

20
推荐指数
1
解决办法
359
查看次数

C++/C#解决方案中没有的任何CPU

我有一个包含C#和托管C++项目的解决方案.它在解决方案平台x64和x86中编译.由于它是托管C++,我想创建一个'Any CPU'解决方案并摆脱旧的解决方案.

我将C++项目链接器设置更改为x64和x86的强制安全IL映像.

接下来,使用Configuration Manager,我创建了一个名为"Any CPU"的新解决方案平台.接下来我添加了一个名为"Any CPU"的项目平台.

我继续将所有C#项目设置为"任何CPU",但对于C++我不能这样做.项目平台'Any CPU'不在下拉列表中,也没有选项'New ...'.

VS是关于它的,所以我保持它就像它并开始构建.令我惊讶的是,结果DLL(来自C++项目)是MSIL,即使C++的平台是x64.编译x32时也是如此,生成的DLL在MSIL中.

是什么赋予了?为什么我不能将C++项目设置为"任何CPU"?

c# c++ managed anycpu

16
推荐指数
2
解决办法
9560
查看次数

为什么'Any CPU'应用程序在x64机器上作为x86运行?

我有一个Any CPU应用程序安装到Program Files(x86).在一台Windows 7 x64计算机上,它按预期运行x64,而在另一台Windows 7 x64计算机上运行为x86!

怎么会这样?我希望它在两台机器上以x64运行.可能是什么原因,我该怎样做才能始终以x64运行?

在我运行它的地方是否重要 - Program Files (x86)在我的情况下?

.net c# clr 64-bit anycpu

15
推荐指数
1
解决办法
3306
查看次数

如何在Visual Studio 2010中添加x64(或任何CPU)作为构建选项(从控制台应用程序到类库)

最初,我使用Mass Transit作为我的服务总线创建了一个控制台应用程序.最近,我切换到NServiceBus,它不需要你创建一个控制台应用程序,而是一个类库.在项目属性中,我只是将将其更改的设置从控制台应用程序切换到库,但是只能为x86构建它的约束仍然有效.

我现在无法将构建类型更改为任何CPU,因为它是一个控制台应用程序,现在应该是有效的.有没有办法将我的应用程序完全更改为类库,以便我可以运行构建任何CPU选项?我是否需要创建一个新项目,将文件复制到其中并继续这样做?或者它是否像改变项目(.proj)文件中的内容一样简单?

堆栈溢出问题缺少调试|任何项目的CPU构建配置和默认为Windows x64上的Debug | x86仅为控制台应用程序提供了有关此x86问题的更多上下文.

projects-and-solutions x86-64 visual-studio-2010 anycpu

15
推荐指数
1
解决办法
5万
查看次数

我的Configuration Manager中没有"任何CPU"选项

我在VS2010(或之前)中读过几篇关于配置管理器的帖子,但我找不到我的问题.

我有一个包含6个项目的解决方案.当我打开配置管理器时,我可以选择:"Active Solution Configuration",其值为Debug,Release,New或Edit.ÁctiveSolutionPlatform'具有值任何CPU,混合平台,x64,x86,新建或编辑.对于我的6个项目中的任何一个,配置(调试,发布,新建,编辑),平台(非启动项目:任何CPU,新建,编辑和启动项目:x64,新建,编辑).

对于除启动项目以外的所有项目,Platform的唯一(实际)选择是"任何CPU",我认为这很好.

但是,对于启动项目我只能选择x64,所以我假设在32位Windows操作系统上运行它会有问题吗?

我在历史上玩了一些价值观,现在有人把这个错误邮寄给我:

此文件的版本与您正在运行的Windows版本不兼容.检查您的计算机系统信息,以查看是否需要该程序的x86(32位)或x64(64位)版本,然后与软件发行商联系

(当我选择x86平台时,我只能在我的启动项目中选择x64作为平台,而其他人则设置为'任何CPU'.

当尝试将任何CPU添加到启动项目时,我可以选择它,但它要求复制设置,我只能选择x64或为空.选择其中任何一个都会导致错误:

无法创建此平台,因为已存在同名的解决方案平台.

我假设它以前设置为x86,但我不确定,无论如何,我怎样才能为我的启动项目获得"任何CPU"选择?

更新:突然之间,我可以添加选项"任何CPU"而不会出现错误.所以我的问题解决了......

我只是不知道为什么它第一次没有工作......我只是关闭窗口并重新启动它,这是可能的.

c# configurationmanager visual-studio-2010 anycpu

11
推荐指数
2
解决办法
2万
查看次数

托管C++和AnyCPU

我有一个我从C#项目引用的Managed C++ dll.C#项目将编译为AnyCPU.有没有办法编译32位和64位版本的托管C++ DLL,然后在运行时告诉C#项目加载正确的一个,具体取决于它运行的架构?

.net c# managed-c++ anycpu

8
推荐指数
1
解决办法
3511
查看次数

c#visual studio build exe with target anycpu但是在调用进程平台(x86/x64)上确定了它的平台(x86/x64)

我们有一个32位和64位的软件,它们调用我们的exe并将事件传递给它(就像一个插件).

问题是我们的exe必须以与调用软件相同的位(x86/x64)执行(如果软件以32位版本运行,我们的exe必须以32位运行,如果软件运行在64位版本我们的exe必须以64位运行).Windows版本是64位,但客户端可以运行32位版本或64位版本的软件.

在visual studio(2015)中,Target AnyCPU选项仅取决于Windows版本(+ Prefer 32位复选框),但我们需要依赖于调用软件Process.

我们可以实现任何选项或解决方案而不是编译到每个平台(x86和x64)吗?

c# x86 target-platform anycpu visual-studio-2015

8
推荐指数
1
解决办法
508
查看次数