有人知道如何在TFS托管控制器构建中使用ClickOnce清单应用程序的代码签名证书吗?
情境:
我使用Team Foundation Service作为代码存储库和源代码控制。我使用团队资源管理器(Visual Studio 2012)创建了一个构建定义。
使用配置为任意CPU |发布
的默认模板构建“ 流程 ”构建设置为“手动触发器 ”使用托管构建控制器。
如果我的项目使用代码签名和代码清单,TFS构建将失败。
在我的解决方案中,有两个项目有“ClickOnce清单”
本地版本在代码签名和ClickOnce清单方面没有任何问题 - 因为代码签名证书可在本地用于构建。
但对于TFS中的相同构建,我收到错误“无法在证书库中找到清单签名证书。” (只有一个阻止构建的错误)
问题
如何将代码签名证书安装到“TFS Build Service Account”或“Build service user account”?
如何在虚拟构建计算机的证书存储中使用代码签名证书?
使用代码签名和ClickOnce Manifests获得干净的TFS构建的替代方法吗?
还没有找到解决方案:(任何人都有帮助吗?
答案 0 :(得分:1)
我已经设法在TFS自动构建中签署我的ClickOnce清单。我的证书受密码保护,因为这个原因,构建服务器无法访问证书。证书不在我的个人证书店,因此我遇到了麻烦。
我已将证书导入本地计算机的个人存储区,并从那里引用它来签署clickonce清单。当您从个人商店引用证书时,它不会要求输入密码。因此,您可以欺骗TFS构建,现在可以访问您的代码签名证书。
答案 1 :(得分:-2)
我有一个替代方案可以为你提供干净的构建。
我的公司生产名为ClickOnceMore(www.clickoncemore.net)的产品,可用于构建ClickOnce清单而不是MSBuild。它旨在使用命令行界面轻松集成到持续集成构建中。
要集成到您的构建中: *关闭visual studio解决方案中的clickonce *创建ClickOnceMore项目 *要签署清单,您只需将签名证书放在已知的文件夹位置,然后从ClickOnceMore项目中引用它 *在TFS中添加新的构建步骤以构建ClickOnceMore项目
希望有所帮助。