Nat*_*San 4 c++ code-signing visual-studio
我正在使用 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"
Run Code Online (Sandbox Code Playgroud)
这将使用您的证书签署项目输出(可能是一个DLL或EXE没有区别),并记录在一个后缀为您的项目命名的文件中的签名证书的输出sign.out,把该文件的文件夹中叫sign了你输出目录。
这似乎有点矫枉过正,但生成的输出文件是有原因的。通过创建该文件,并将其命名为自定义构建步骤的“输出”之一:
可以比较判断是否要重新签。每次构建项目时,如果重新生成目标映像(您的 exe 或 dll),则该输出文件将过期,并且将启动自定义构建步骤以重新生成它(因此也会重新对映像进行签名) )。顺便说一句,sign.out 文件将包含如下内容:
"$(FrameworkSDKDir)bin\x86\signtool.exe" sign /v /f "path-to-your-cert\yourcert.pfx" /p password "$(TargetPath)" > "$(OutDir)sign\$(ProjectName)-sign.out"
Run Code Online (Sandbox Code Playgroud)
获得 PFX 和密码后,在最终将其配置为构建的一部分之前,您可以轻松地手动测试该命令。我见过的唯一真正的通配符是 signtool.exe 的完整路径,它似乎不时发生变化(例如,VS2008 与 VS2015 不同。
无论如何,我就是这样做的。希望你也可以。
| 归档时间: |
|
| 查看次数: |
3481 次 |
| 最近记录: |