编译时,我总是设置为Any CPU。但是,有些客户没有所需二进制文件的 64 位版本,即使在 x64 系统上运行也是如此。在这些情况下,我要求他们使用 corflags.exe/32BIT+ 选项修改我的二进制文件:
http://msdn.microsoft.com/en-us/library/ms164699(VS.80).aspx
如果 64 位版本不存在,我想让它变得透明并在安装期间自己修改二进制文件。我宁愿自己不要调用 corflags.exe,因为这意味着我需要重新分发应用程序,而这在我们的运输要求中是不允许的。
所以我的问题是;有什么方法可以自己以编程方式修改此标志,或者直接修改二进制文件(它只是在文件本身的某处设置一个字节)?
最佳答案
我还没有尝试过这个但是你能在二进制文件的副本上运行 corflags 并做一个二进制差异来确定修改了什么偏移量。您可以将此作为安装脚本的构建操作来执行,并将偏移量存储在安装程序中。
在安装时,只需根据需要更改偏移量即可。
当然我永远不会认可这样的行为,只是说说而已
;-)
顺便说一句,如果您不断需要将程序集标记为 32 位,您可以考虑只针对该平台,而不是事后将其更改为 32 位。
干杯。
关于c# - 如何以编程方式设置或清除 32BIT 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937206/