繁体   English   中英

使用CodeDom编译,但不包括“ VERSIONINFO” Win32资源

[英]Compile with CodeDom, but don't include the “VERSIONINFO” Win32 Resource

我正在使用CodeDom编译C#代码。 即使没有指定资源,它仍会编译一个称为“ VERSIONINFO”的Win32Resource。 我知道我可以在BeginUpdateResource编译后将其删除,但是这样会在文件中留下“ PADDINGXXPADDINGXX”,这是我所不希望的。 有没有办法在没有任何资源的情况下将C#代码编译为.exe?

对此烦恼实际上是很麻烦的。 EXE不仅包含VERSIONINFO资源,还具有清单。 最好的查看方法是在Visual Studio中使用File + Open + File打开EXE。 清单位于RT_MANIFEST节点下。

这很重要,因为它声明您的程序与UAC兼容。 没有它,Windows会将其视为旧版Windows应用程序。 其中一些相当不可预测的行为,将文件和注册表重新映射到隔离存储。

您可以得到想要的东西。 在记事本(不是Visual Studio)中创建一个空的.rc文本文件,然后使用rc.exe将其编译为.res文件。 在您的CompilerOptions中使用/ win32manifest强制编译器使用它,以便它忽略自动生成的本机资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM