簡體   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