TFS构建中的ClickOnce Manifest应用程序

时间:2013-04-23 16:00:23

标签: c# clickonce manifest code-signing tfsbuild

有人知道如何在TFS托管控制器构建中使用ClickOnce清单应用程序的代码签名证书吗?

情境:

我使用Team Foundation Service作为代码存储库和源代码控制。我使用团队资源管理器(Visual Studio 2012)创建了一个构建定义。

使用配置为任意CPU |发布

的默认模板构建“ 流程

构建设置为“手动触发器 ”使用托管构建控制器

如果我的项目使用代码签名和代码清单,TFS构建将失败。

在我的解决方案中,有两个项目有“ClickOnce清单”

本地版本在代码签名和ClickOnce清单方面没有任何问题 - 因为代码签名证书可在本地用于构建。

但对于TFS中的相同构建,我收到错误“无法在证书库中找到清单签名证书。” (只有一个阻止构建的错误)

问题

如何将代码签名证书安装到“TFS Build Service Account”或“Build service user account”?

如何在虚拟构建计算机的证书存储中使用代码签名证书?

使用代码签名和ClickOnce Manifests获得干净的TFS构建的替代方法吗?

还没有找到解决方案:(任何人都有帮助吗?

2 个答案:

答案 0 :(得分:1)

我已经设法在TFS自动构建中签署我的ClickOnce清单。我的证书受密码保护,因为这个原因,构建服务器无法访问证书。证书不在我的个人证书店,因此我遇到了麻烦。

我已将证书导入本地计算机的个人存储区,并从那里引用它来签署clickonce清单。当您从个人商店引用证书时,它不会要求输入密码。因此,您可以欺骗TFS构建,现在可以访问您的代码签名证书。

答案 1 :(得分:-2)

我有一个替代方案可以为你提供干净的构建。

我的公司生产名为ClickOnceMore(www.clickoncemore.net)的产品,可用于构建ClickOnce清单而不是MSBuild。它旨在使用命令行界面轻松集成到持续集成构建中。

要集成到您的构建中: *关闭visual studio解决方案中的clickonce *创建ClickOnceMore项目 *要签署清单,您只需将签名证书放在已知的文件夹位置,然后从ClickOnceMore项目中引用它 *在TFS中添加新的构建步骤以构建ClickOnceMore项目

希望有所帮助。