将 /highentropyva- 从 MSBuild 命令行或项目文件传递给 CSC 编译器

本文关键字:CSC 编译器 项目文件 highentropyva- MSBuild 命令行 | 更新日期: 2023-09-27 18:34:54

由于供应商库不兼容,我需要在关闭高熵 VA 的情况下编译我的 C# 应用程序。到目前为止,我发现这样做的唯一方法是使用 editbin 进行构建后步骤,但这非常笨拙。有没有更好的方法?

将 /highentropyva- 从 MSBuild 命令行或项目文件传递给 CSC 编译器

IDE 在"生成"属性表中缺少对此选项的支持。 但这很容易解决,您只需手动将属性添加到 .csproj 文件中即可。 在文本编辑器中打开它,记事本很好。 找到 <FileAlignment> 属性并在其后添加:

   <HighEntropyVA>False</HighEntropyVA>

并重建项目。 您可以通过对生成的可执行文件运行dumpbin.exe /headers进行验证:

       ...
       8540 DLL characteristics
              Dynamic base
              NX compatible
              No structured exception handler
              Terminal Server Aware

并注意缺少的"高熵虚拟地址"特征。