在Visual C#2008 Express Edition中设置32位x86构建目标?

Joh*_*hat 10 c# com 32-bit visual-studio-2008

我正在构建一个加载32位COM dll的C#应用​​程序.编译的应用程序在32位Windows上正常运行,但在64位Windows上运行barfs,因为它无法加载32位COM.有没有办法在VC#2008 Express Edition中设置32位构建目标?

或者,有没有办法强制编译到AnyCPU构建目标的.NET应用程序在64位Windows上以32位模式运行?

Joh*_*hat 26

对于后代,这里是adrian链接到的论坛帖子:

在VC#Express中,缺少此属性,但如果您知道要查找的位置,仍可以创建x86配置.

它看起来像一长串的步骤,但一旦你知道这些东西在哪里,它就容易多了.只有VC#Express的人可能会觉得这很有用.一旦了解了Configuration Manager,下次它就会更加直观.

  1. 在VC#Express 2005中,转到"工具" - >"选项".
  2. 在"选项"对话框的左下角,选中"显示所有设置"框.
  3. 在左侧的树视图中,选择"项目和解决方案".
  4. 在右侧的选项中,选中"显示高级构建配置"框.
  5. 单击确定.
  6. 转到Build - > Configuration Manager ...
  7. 在项目旁边的"平台"列中,单击组合框并选择"".
  8. 在"新平台"设置中,选择"x86".
  9. 单击确定.
  10. 单击关闭.

在那里,现在你有一个x86配置!非常简单!:-)

我还建议使用Configuration Manager删除Any CPU平台.如果您曾经依赖于32位本机DLL(甚至是间接依赖项),那么您真的不希望这样.


adr*_*nks 12

您无法在VS Express的UI中将其显式设置为32位,但显然(我手边只有Professional版本)可以使用一些设置来完成.这篇论坛帖子详细介绍了如何做到这一点.

您还可以使用.Net Framework SDK附带的CorFlags工具将已编译的输出设置为32位运行.要使用CorFlags设置32位标志,请从命令行运行:

CorFlags.exe /32BIT+ yourapp.exe
Run Code Online (Sandbox Code Playgroud)

这将在你的exe的标题中设置一个标志,向.Net发出信号,它应该以32位运行.