在第一次构建之前知道 Visual Studio 密钥容器
Know the Visual Studio key container before the first build
我正在尝试使我们公司的所有构建和发布过程自动化,但我正在为一个非常小的步骤而苦苦挣扎:在本地计算机中导入 PFX 密钥。
例如,我们有一台新的构建机器,我们要构建的代码在构建过程中通过受密码保护的 PFX 文件进行了签名。
当我 运行 在这台机器上构建 TFS 时,构建失败并出现此错误
Error MSB3325: Cannot import the following key file: Mykey.pfx.
The key file may be password protected.
To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the following key container name: VS_KEY_03AD4638FE10A12F
很好,如前所述 here 我只需将 PFX 文件导入名为 VS_KEY_03AD4638FE10A12F
的容器中...但这是第一次构建失败后所需的手动步骤,我需要它不知道用于通过 sn.exe
.
导入密钥的容器名称
相反,我想提供一个已经能够编译代码的构建机器。
容器名称是如何生成的?有没有办法在源代码中告诉使用一个固定的容器,以便每次使用新机器构建时它都不会改变?或者,我们能否检索将在构建之前使用的密钥容器,以便我添加导入 PFX 文件的构建步骤?
或者,有没有我可以使用的 "generic" 密钥容器(所有机器都一样)?
谢谢
您可以使用SnInstallPfx.exe。它将确定容器名称并导入 pfx。
有关详细信息,请参阅以下内容blog article。
我正在尝试使我们公司的所有构建和发布过程自动化,但我正在为一个非常小的步骤而苦苦挣扎:在本地计算机中导入 PFX 密钥。 例如,我们有一台新的构建机器,我们要构建的代码在构建过程中通过受密码保护的 PFX 文件进行了签名。 当我 运行 在这台机器上构建 TFS 时,构建失败并出现此错误
Error MSB3325: Cannot import the following key file: Mykey.pfx.
The key file may be password protected.
To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the following key container name: VS_KEY_03AD4638FE10A12F
很好,如前所述 here 我只需将 PFX 文件导入名为 VS_KEY_03AD4638FE10A12F
的容器中...但这是第一次构建失败后所需的手动步骤,我需要它不知道用于通过 sn.exe
.
相反,我想提供一个已经能够编译代码的构建机器。
容器名称是如何生成的?有没有办法在源代码中告诉使用一个固定的容器,以便每次使用新机器构建时它都不会改变?或者,我们能否检索将在构建之前使用的密钥容器,以便我添加导入 PFX 文件的构建步骤? 或者,有没有我可以使用的 "generic" 密钥容器(所有机器都一样)?
谢谢
您可以使用SnInstallPfx.exe。它将确定容器名称并导入 pfx。
有关详细信息,请参阅以下内容blog article。