![](/img/trans.png)
[英]How do I use a Win32 Class Library in a Win32 Application in Visual Studio 2010 Express?
[英]How can I get Visual Studio 2017 to sign a Win32 application automatically?
我正在使用 visual studio 2017。我不是開發人員。 我只是想寫一個簡單的解析腳本,我熟悉 visual studio。 我使用 Atmel Studio(基於 VS)編寫嵌入式代碼,但我不必處理簽名。 我在工作計算機上安裝了 visual studio,現在每次創建新版本時都會出現 bit9 錯誤。
內部 IT 向我指出了一堆稍微過時的證書內容。 我現在有一個證書可以應用於我的構建,但是此處定義的過程顯然不適用於 Win32 應用程序。 我在項目屬性中沒有簽名選項卡。
我還使用 signtool 研究了 visual studio 命令行。 但是,我需要花費大量時間來了解它的工作原理和實施方式。
希望其他人已經解決了這個問題,我可以節省時間。 如果沒有簡單的解決方案,我將返回手動解析,因為這已經占用了我很多時間。
這就是我使用 Visual Studio 2010 和 Visual Studio 2015 為非托管 C 或 C++ Win32 應用程序完成此操作的方式。 你需要:
有了這些,可以為您的 Win32 項目創建以下自定義構建步驟:
"$(FrameworkSDKDir)bin\x86\signtool.exe" sign /v /f "path-to-your-cert\yourcert.pfx" /p password "$(TargetPath)" > "$(OutDir)sign\$(ProjectName)-sign.out"
這將使用您的證書對項目輸出進行簽名(無論是 DLL 還是 EXE 都沒有區別),並將簽名證書的輸出記錄在以您的項目命名並帶有后綴sign.out
的文件中,將該文件放在一個文件夾中稱為sign
你的輸出目錄。
這似乎有點矯枉過正,但生成輸出文件是有原因的。 通過創建該文件,並將其命名為自定義構建步驟的“輸出”之一:
可以比較用來判斷是否續簽。 每次構建項目時,如果重新生成目標圖像(您的 exe 或 dll),則輸出文件將過時並且自定義構建步驟將被啟動以重新生成它(因此也重新簽署圖像). 順便說一句,sign.out 文件將包含如下內容:
The following certificate was selected:
Issued to: The Signing Cert Name Here
Issued by: The Issuer Cert Name Here
Expires: Sat Dec 31 16:59:59 2039
SHA1 hash: 232C80E19EBC71330E7C12CA8C07B345B1531777
Done Adding Additional Store
Successfully signed: full-path-to-image-here
Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
獲得 PFX 和密碼后,您可以輕松地手動測試命令,然后再最終將其配置為構建的一部分。 我見過的唯一真正的通配符是 signtool.exe 的完整路徑,它似乎不時發生變化(例如,VS2008 與 VS2015 不同。
不管怎樣,我就是這樣做的。 希望你也可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.