问题标签 [anycpu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
573 浏览

c# - 在 .NET 2.0 项目上将 CPU 目标设置为 x86 会添加 .NET 3.5 依赖项

我在 VS2008 中有一个针对 .NET 2.0 框架的项目。它最初是为 AnyCPU 构建的。我将其更改为 x86,无论出于何种原因,VS 在 .csproj 中添加了以下几行:

有人可以解释为什么要添加它以及我是否可以安全地删除它,因为我仍然必须针对 .NET 2.0 框架。

谢谢。

0 投票
2 回答
1270 浏览

.net-3.5 - 如何使用 VS 安装项目在 32 位或 64 位 Windows 上正确安装“任何 CPU”代码?

我们拥有一整套产品,包括:

  • 用 VB6 编写的桌面应用程序。
  • 用 .NET 编写的桌面应用程序。
  • 用 .NET 编写的 Windows 服务。
  • 用 .NET 编写的 ASP.NET Web 应用程序。
  • 用 .NET 编写的 ASMX 和 WCF 服务。

所有 .NET 代码都是用 VS2008 编写的,面向 .NET 3.5 和“任何 CPU”。我们可以针对特定的处理器,但不希望这样做,因为它会在依赖关系树的下方引起问题。我们还不能将任何东西迁移到 .NET 4.0,尽管稍后它将成为一个选项。

所有应用程序共享一些重要的注册表项。我们通过让 .NET 代码始终查看 32 位注册表视图来解决注册表重定向问题。

一些 .NET 代码通过 COM 互操作与 VB6 DLL 对话,但这非常有限,我们可以轻松删除这种依赖关系(现在注释掉,稍后在 .NET 中重新编写)。

所有 Web 应用程序和服务都设计为托管在 IIS 中。需要支持从 5.1 开始的所有版本。

我们构建的虚拟机当前运行的是 Windows XP(32 位)。如有必要,我们可以创建新的。

我的任务是确保一切都在 64 位 Windows(所有版本)上正常运行。我目前在使用 .NET 安装项目时遇到问题,所有这些项目都是使用 VS2008 安装项目模板编写的。

即使源代码是 Any CPU,设置项目也没有此功能。您必须将该TargetPlatform属性设置为一个处理器。这不是很有用。我们不能setup.exe在 32 位操作系统上安装为 32 位,在 64 位操作系统上安装为 64 位吗?如果我是安装应用程序的最终用户,我将不知道要运行哪个安装程序。

0 投票
2 回答
1676 浏览

c# - C# 解决方案,除了必须是 x86 的项目之外,所有项目都可以针对 AnyCPU 吗?

我们有一个包含许多不同库的大型解决方案。我们刚刚迁移到 64 位系统上的开发,这让我们思考应该为解决方案中的每个单独项目指定什么平台目标。

目前,我们只有一个引用 32 位 DLL 文件的库项目。我们引用了这个 DLL 文件的一个互操作,但是当我们将 x86 定位为这个项目的平台,同时将解决方案中的其余项目保留为“任何 CPU”时,我们收到一个错误。

我的问题是,除了引用 32 位互操作的项目之外,我们可以在所有项目上针对任何 CPU 吗?或者应该只为 x86 构建所有内容,因为这似乎可以正常工作而没有任何错误。

0 投票
4 回答
68665 浏览

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

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

我在另一个网站上读到我需要执行以下操作:

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

但是我在属性的任何地方都看不到“编译”选项卡。

请尽早帮助我。

更新:我确实看到了一个平台下拉列表,但除了 "Any CPU" 之外什么都不包含

平台除了.

0 投票
1 回答
100 浏览

.net - 更改现有DLL的平台

我有一个为“任何 CPU”构建的第三个 DLL。它需要(出于特定原因)为 x86 重建。我无法访问现有的源代码,但可以通过 Reflector 自己反编译并重新编译它。

是否有另一种方法可以在不采用反射器路径的情况下做到这一点

0 投票
1 回答
357 浏览

.net - StackFrame.GetFileLineNumber() 行为因程序集平台和优化标志而异

我试图理解一个问题,虽然我读了很多书,但我似乎找不到任何资源来解释这种奇怪的组合。

经过一些实验,我发现设置编译器优化开/关和为 AnyCPU/x86 平台构建的组合改变了 StackFrame.GetFileLineNumber() 的行为

我不明白为什么我得到以下结果(在我的 x64 系统上)

下面的代码重现了该问题。

如果您将上述代码保存为code.cs使用以下脚本创建批处理文件,它将编译程序集以轻松解决问题:

0 投票
1 回答
482 浏览

.net-3.5 - .NET 软件在 x64 上运行但在 x86 上为任何 CPU (VS2008) 编译

我有一个问题,我在编译程序时遇到运行时错误。这在开发环境(x86)中可以正常工作,但在生产环境(x64)中不行。

我找到了这篇文章,这似乎暗示将软件编译为 Any CPU 可以将软件作为 x64 软件运行,如果它运行在 64 位环境中。

是这样吗?如果是这样,软件是否应该在任何 CPU 下编译(因为这似乎会导致两个环境之间不匹配)?

0 投票
2 回答
64985 浏览

.net - C# 编译为 32/64 位,或任何 cpu?

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

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

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

0 投票
1 回答
2714 浏览

c# - 如果它以 32 位 (WOW64) 运行,我如何将我的 C# AnyCPU 应用程序重新运行为 64 位?

我为 32 位和 64 位 Windows 开发我的应用程序。我有一个问题:如果我的应用程序是从 64 位操作系统上的 32 位进程启动的,我的应用程序将以 32 位运行。如果它以 32 位 (WOW64) 运行,我如何将我的 C# AnyCPU 应用程序重新运行为 64 位?

0 投票
1 回答
4073 浏览

c# - 为什么“任何 CPU”应用程序在 x64 机器上作为 x86 运行?

我在 Program Files (x86) 中安装了Any CPU应用程序。在一台 Windows 7 x64 机器上,它按预期以 x64 运行,而在另一台 Windows 7 x64 机器上,它以 x86 运行!

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

在我的情况下,我从哪里运行它是否重要Program Files (x86)