1

问题:

我继承了一个包含 4 件的解决方案。其中两个是用于数据库内容的 C# 项目。那里很容易。另外两个是网站。现在,一切都在配置管理器中设置为使用 AnyCpu。出于这个特定原因,我需要做的是将网站更改为 x86:

Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\<My Company>\<My Application>", false);

注意:<> 标记内的字面意思不是 My Company。我只是说我公司的名字。

经过一番研究,我了解到以下内容:

  1. 为“x86”编译的 .NET 应用程序:
    • 始终为 32 位
    • 在 32 位平台上,访问 32 位注册表
    • 在 64 位平台上,访问 32 位注册表(在 Wow6432Node 内)
  2. 为“x64”编译的 .NET 应用程序:
    • 始终为 64 位
    • 在 32 位平台上,不会运行
    • 在 64 位平台上,访问 64 位注册表(不在 Wow6432Node 内部)
  3. 为“AnyCpu”编译的 .NET 应用程序
    • 32 位或 64 位,具体取决于平台
    • 在 32 位平台上,访问 32 位注册表
    • 在 64 位平台上,访问 64 位注册表(不在 Wow6432Node 内部)

所以,我需要的是能够为 x86 编译,因为该应用程序安装为 32 位,并将显示在 64 位操作系统上的 Wow6432Node 文件夹中。

我的问题:

网站最初设置后是否可以更改其目标平台?

我试过的:

  1. 在 VS 2010 中,转到 Build --> Configuration Manager。
  2. 在活动解决方案平台下:选择“新建...”
  3. 加入 x86 平台。
  4. 尝试将我的两个网站更改为 x86。

第 4 步是失败的地方。x86 不是一个选项。它在我的两个 C# 项目中显示得很好。这有可能改变吗?

非常感谢任何帮助或见解!

4

1 回答 1

1

戴夫怀特在评论中是正确的,在另一个线程中有一个答案:https ://stackoverflow.com/a/5656769/1037864

(答案是在 web.config 中的编译器元素上设置 compilerOptions="/platform:x86")

于 2016-04-08T14:29:02.060 回答