2

我有一个 Visual Studio 包项目,它在编译时会为我创建一个 DLL,并且该 DLL 放在一个 .VSIX 文件中(然后我双击安装)。

我希望签署 DLL 并确保 VSIX 已签署。

我看过Signing VSIX Packages,但这并不是很有帮助(或者我很愚蠢,这很有可能!)

我还查看了使用数字签名示例创建包,这似乎涉及通过代码从头开始创建包并对所有内容进行签名。我(也许天真地)期望能够通过构建和创建包的 MsBuild 过程进行签名。

非常感谢有人能告诉我 MSBuild 的适当挂钩,以允许我在将 DLL 添加到 VSIX之前调用我的签名目标对 DLL进行签名,以及如何对 VSIX 本身进行签名?

4

1 回答 1

3

所以,最后,我创建了一个自定义任务,它使用上面示例中的代码(以及来自这篇博客文章)来获取 VSIX 并对其进行签名。

最后,我这样称呼目标:

  <Target Name="VsixSign" AfterTargets="CreateVsixContainer">
    <ItemGroup>
      <TargetDll Include="$(OutputPath)\$(TargetFileName)" />
    </ItemGroup>
    <SignServiceTarget
      FileName="@(TargetDll->'%(RootDir)%(Directory)%(Filename).vsix')" 
      Description="$(ProjectName)" />
  </Target>

请注意,我在 Visual Studio 包“CreateVsixContainer”目标之后调用此目标,以便在正确的位置挂钩构建。

于 2014-09-04T13:22:31.637 回答