由 C# 中 PowerPoint 的 VSTO 加载项开发团队签名

Signing by team development of VSTO add-in for PowerPoint in C#

我和另一个人正在使用 C# 和 VSTO 为 PowerPoint 开发一个加载项项目。我们的项目保存在一个存储库中,每次当我们中的一个人从存储库中获取最新版本并由另一个人更新时,他都会遇到签名编译器问题。到目前为止,我们通过从存储库更新每次在相应的机器上生成测试证书来解决这个编译器问题。

我的问题是:是否有可能以某种方式避免每次从存储库中获取可在其他机器上编译的解决方案后生成测试证书,以便在两台机器上都可以编译?

我们尝试了一切:

  1. 我们对我们的两台 PC 使用相同的 .pfx 文件(即我们将此文件发送到存储库)。

  2. 我们尝试取消选中解决方案属性 window 中的复选框 "Sign the ClickOnce Manifest" 并完全删除 .pfx 文件。

  3. 我们尝试使用我们自己的 .pfx 文件并将它们放入忽略列表。

但是没有结果!

我们有类似的情况,我们正在做以下事情:

  1. 'Sign the ClickOnce manifest' 使用本地生成的 .pfx 密钥签名,该密钥签入存储库。

  2. 程序集使用强名称密钥签名。

  3. 在构建服务器上,使用公司的数字证书对清单进行重新签名,以便按照本文中提供的说明进行部署 - http://blogs.msdn.com/b/vsto/archive/2009/04/29/signing-and-re-signing-manifests-in-clickonce.aspx

让我回答我自己的问题。解决方案可能已找到。步骤如下:

  1. 一位开发人员应该生成一个定义密码的新 .pfx 文件。结果,他已经可以在他的机器上正确地开发插件;但其他开发人员仍然可以不能,在他们的机器上。

  2. 使用项目 "Properties" window 的相同选项卡,此开发人员必须 select 相同 。 pfx 文件与 "Select from File..." 按钮,给出密码。

  3. .pfx 文件应该发送到存储库(即不应将其包含在忽略列表中)。因此,其他开发人员将不再需要随时生成其他 .pfx 文件。

我们准备好了!

"magic" 是所有开发者都知道密码是至关重要的。当.pfx文件如第2项所述添加到项目中时,意味着所有开发人员都知道密码。