![]() |
1
34
这个 blog post 下面详细介绍了具体步骤 设置密钥文件 使用项目属性中的Visual Studio__Signing_选项卡创建受密码保护的私钥/公钥对(key pair.pfx)。 从密钥对中提取公钥并将其复制到单独的文件(key.snk) sn.exe-p密钥对.pfx key.snk 将keypair.pfx复制到构建服务器。我使用c:\program files\msbuild\keyfile.pfx,因为它随后可以由$(msbuildExtensionsPath)msbuild属性访问。 将keypair.pfx文件移到安全位置。密码也要保密。 将key.snk复制到开发人员可以访问的共享位置。 设置要签名的项目 对于要签名的每个程序集:
设置重新签名的测试运行配置 如果要检测程序集并为单元测试启用代码覆盖率,则需要指定用于重新签名的密钥文件。 打开localtestrun.testrunconfig文件 在“代码覆盖率”选项卡上,选择密钥作为重新签名密钥文件。 在开发人员工作站上禁用强名称验证 由于只使用公钥延迟签名,.NET CLR程序集验证将在本地生成程序集时失败。当验证失败时,您将无法运行或调试程序集。 为了在开发中克服这个问题,您需要禁用本地生成的程序集的强名称验证,并延迟使用公钥进行签名。
打开Visual Studio命令提示
Type:
这将输出一些数据,包括令牌。
Type:
例子:
这将禁用用公钥签名的所有程序集的强名称验证。 您可以列出强名称验证的当前设置: SN—Vl 正在安装团队生成的私钥 由于私钥(key.pfx)受密码保护,因此“团队构建”无法访问它。多亏了 Nagaraju Pallaâs Blog: Using Password Protected Signing Keys in Team Build ,我们有一个解决方案。 作为生成服务帐户登录到Team Build Server 在Visual Studio中打开项目 在Visual Studio中生成项目 系统将提示您输入私钥文件的密码。 输入密码 关闭Visual Studio注销 私钥文件现在安装在生成服务帐户的本地证书存储中,TeamBuild可以访问它,而无需再次提示输入密码。此证书存储与生成服务帐户的密码一样安全。(提示:使其与密钥文件的密码一样强) 正在更新tfsbuild.proj生成脚本 Team Build可以访问私有密钥文件和密码。这允许它对程序集进行完全签名。 要重写项目设置并指示team build使用私有密钥文件并禁用部分签名,我们需要在tfsbuild.proj中设置custompropertiesforbuild属性。 签出tfsbuild.proj生成脚本 搜索占位符属性(默认在第130行附近) 替换为以下内容: signassembly=true;delaysign=false;assemblyoriginatorkeyfile=$(msbuildExtensionsPath)\key.pfx 签入您的更改 排队构建 验证团队生成输出 要检查TeamBuild是否对程序集进行了正确的强名称命名,可以使用sn.exe实用工具验证强名称签名。 打开Visual Studio命令提示 Type: sn.exe-vf assemblyname.dll文件 您还可以同时验证所有程序集: 打开Visual Studio命令提示 Type: 对于在(*.dll)中的%a,执行sn.exe-vf%a |
![]() |
Mr.H. · 如何在外部文件中定义函数? 6 年前 |
![]() |
Jon Goe · 实现SeekArc时生成同步失败 7 年前 |
![]() |
Farzad J · VSTS中PowerShell脚本的打包管理器 7 年前 |
![]() |
vladfau · Maven没有在多模型项目中构建兄弟依赖关系 7 年前 |