使用 Microsoft Visual Studio 中的生成后事件对二进制(ObjectARX 或 Managed .NET)文件进行数字签名的步骤

生成后事件是在项目已构建后发生的操作。可以使用生成后事件在二进制(ObjectARX 或 Managed .NET)文件已构建后对其进行数字签名。以下步骤说明了如何使用 Windows SDK 中的 SignTool.exe 工具添加生成后事件,从而对项目的目标文件进行数字签名。

有关使用 SignTool.exe 工具的详细信息,请参见“对二进制(ObjectARX 或 Managed .NET)文件进行数字签名的步骤”。

注: 项目名称或文件夹路径中的特殊字符可能导致 SignTool.exe 工具或其他程序(作为生成后事件的一部分执行)出现问题。

Visual Basic

  1. 在 Microsoft Visual Studio 的“解决方案资源管理器”中,在项目上单击鼠标右键,然后选择“特性”。
  2. 在“特性”页面上,单击“编译”选项卡。
  3. 滚动到页面底部,然后单击“生成事件”。
  4. 在“生成事件”对话框中,单击“编辑生成后”。
  5. 在“生成后事件命令行”对话框中,键入执行 SignTool.exe 工具的语句和它应使用的参数。

    以下示例演示了如何使用受密码保护的数字证书(存储在“Autodesk”文件夹下的 MyCert.pfx 文件中)对项目的目标文件进行签名:

    "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Autodesk\MyCert.pfx" /p MyPassword "$(TargetDir)$(TargetFileName)"
    提示: 单击“宏”将宏添加到要执行的命令行语句。

    $(TargetDir)$(TargetFileName) 宏使您可以动态地将生成目标文件夹和文件名指定为命令行程序的一部分,从而作为生成后事件的一部分执行。

  6. 单击“确定”,关闭“生成后事件命令行”对话框。
  7. 在“生成事件”对话框中,单击“运行生成后事件”下拉列表,然后选择“成功生成时”。
  8. 单击“确定”,保存生成后事件。
  9. 重新生成项目,以测试生成后事件。

    “输出”窗口将显示有关生成后事件是否已成功完成的信息。

    PostBuildEvent:
      "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Autodesk\MyCert.pfx" /p MyPassword "C:\Autodesk\AdskUtils\bin\x64\Release\AdskUtils.dll"
      Done Adding Additional Store
      Successfully signed: C:\Autodesk\AdskUtils\bin\x64\Release\AdskUtils.dll

Visual C#

  1. 在 Microsoft Visual Studio 的“解决方案资源管理器”中,在项目上单击鼠标右键,然后选择“特性”。
  2. 在“特性”页面上,单击“生成事件”选项卡。
  3. 滚动到页面底部,然后单击“编辑生成后事件”。
  4. 在“生成后事件命令行”对话框中,键入执行 SignTool.exe 工具的语句和它应使用的参数。

    以下示例演示了如何使用受密码保护的数字证书(存储在“Autodesk”文件夹下的 MyCert.pfx 文件中)对项目的目标文件进行签名:

    "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Autodesk\MyCert.pfx" /p MyPassword "$(TargetDir)$(TargetFileName)"
    提示: 单击“宏”将宏添加到要执行的命令行语句。

    $(TargetDir)$(TargetFileName) 宏使您可以动态地将生成目标文件夹和文件名指定为命令行程序的一部分,从而作为生成后事件的一部分执行。

  5. 单击“确定”,关闭“生成后事件命令行”对话框。
  6. 在“特性”页面上,单击“运行生成后事件”下拉列表,然后选择“成功生成时”。
  7. 重新生成项目,以测试生成后事件。

    “输出”窗口将显示有关生成后事件是否已成功完成的信息。

    PostBuildEvent:
      "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Autodesk\MyCert.pfx" /p MyPassword "C:\Autodesk\AdskUtils\bin\x64\Release\AdskUtils.dll"
      Done Adding Additional Store
      Successfully signed: C:\Autodesk\AdskUtils\bin\x64\Release\AdskUtils.dll

Visual C++

  1. 在 Microsoft Visual Studio 的“解决方案资源管理器”中,在项目上单击鼠标右键,然后选择“特性”。
  2. 在“特性页面”对话框中,单击“配置”下拉列表,然后选择“所有配置”。
  3. 依次展开“配置特性”“生成事件”,然后单击“生成后事件”。
  4. 在“生成后事件”页面上,单击“命令行”字段。单击下拉列表,然后选择“<编辑...>”。
  5. 在“命令行”对话框中,键入执行 SignTool.exe 工具的语句和它应使用的参数。

    以下示例演示了如何使用受密码保护的数字证书(存储在“Autodesk”文件夹下的 MyCert.pfx 文件中)对项目的目标文件进行签名:

    "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Autodesk\MyCert.pfx" /p MyPassword "$(TargetDir)$(TargetFileName)"
    提示: 单击“宏”将宏添加到要执行的命令行语句。

    $(TargetDir)$(TargetFileName) 宏使您可以动态地将生成目标文件夹和文件名指定为命令行程序的一部分,从而作为生成后事件的一部分执行。

  6. 单击“确定”,关闭“命令行”对话框。
  7. 在“特性”页面上,单击“在生成中使用”字段。单击下拉列表,然后选择“是”。
  8. 单击“确定”,保存生成后事件。
  9. 重新生成项目,以测试生成后事件。

    “输出”窗口将显示有关生成后事件是否已成功完成的信息。

    1>PostBuildEvent:
    1>  Done Adding Additional Store
    1>  Successfully signed: C:\Autodesk\AdskUtils\bin\x64\Release\AdskUtils.arx