2017-06-21 114 views
-1

有沒有一種方法來修補本機DLL(不受管理)與內部版本號? 所以當我右鍵單擊dll並選擇屬性,我可以在詳細信息選項卡「生產版本」中看到作爲內部版本號?或者可能是由appveyor生成的任何其他屬性設置爲內部版本號?AssemblyInfo修補本機DLL

我沒有打開的AssemblyInfo修補,但本機DLL(未管理)沒有與版本號補丁,所以我懷疑這個集信息僅僅是管理組件?...

我需要的是構建編號appveyor在每個構建中生成,以便在運行時可以「爲某種方式」訪問本地DLL中定義的方法,以便能夠使用該構建編號。

你能幫忙嗎? 謝謝

回答

1

AssemblyInfo.cs用於託管程序集。對於本地dll,我發現this有用的討論。在討論中有很多解決方案,我喜歡基於rcedit的解決方案,因爲它很簡單。您可以通過以下簡單的命令使用它:

appveyor downloadfile "https://github.com/electron/rcedit/releases/download/v0.1.0/rcedit.exe" 
rcedit.exe <path_to_native_dll> --set-product-version %appveyor_build_version% 
+0

實際上rcedit.exe失敗對我來說,一個一般的錯誤「rcedit致命錯誤:致命錯誤:無法更改文件版本」 ...... 所以我去了verpatch.exe,它做了與你指出的線程中提到的警告同樣的警告:) –

+0

後來發現: verpatch適用於我的開發箱上的x64和x86版本的DLL,但apveyor構建項目只適用對於X64,它不會對x86 DLL做任何事情 - 也沒有錯誤!任何提示可能會發生什麼? 我可以在appveyor日誌中看到verpatch命令正在執行,沒有錯誤,並且dll沒有以某種方式被替換,並且它沒有版本戳記;對於x64, 在所有情況下一切正常。 請提供任何線索嗎? –