在编译后设置ClickOnce ProductName

时间:2013-05-29 13:03:36

标签: clickonce

我们最近采用Octopus Deploy作为我们的发布管理系统,并使用它来部署ClickOnce个应用程序。 ClickOnce应用程序在安装时会重新配置并重新签名。但是,我还没弄清楚如何设置应用程序的标题。

我可以通过在发布ClickOnce包时设置ProductName来实现,但是我们编译一次并在整个部署管道中部署同一组二进制文件。是否可以在创建ClickOnce包后设置ProductName?

2 个答案:

答案 0 :(得分:2)

此处有两个与之相关的ClickOnce清单文件:

1)应用程序清单。这包含产品名称并列出构成应用程序的所有文件。

2)部署清单。这是指应用程序清单,此文件的URL将分发给任何想要安装该应用程序的人。

您可以在应用程序清单中更改产品名称,但必须重新签名。因此,您将不得不重建部署清单并重新签名 - 因为对应用程序清单的引用包含一个现在已过时的签名哈希。

为了澄清,此产品名称是安装时出现在“您是否要安装此应用程序”对话框中,以及安装后在“开始”菜单中显示的内容(如果将ClickOnce设置为在本地安装而不是始终检索来自远程服务器的应用程序)。

仅供参考,我使用以下命令行分别重建应用程序和部署清单(选项是方括号是可选的):

创建/更新应用程序清单:

mage -New Application -ToFile AppFiles/fooApp_1.2.0.0/fooApp.exe.manifest -Name "fooApp Name" -Version 1.2.0.0 -FromDirectory AppFiles/fooApp_1.2.0.0 [-Processor x86]

签署申请清单:

mage -Sign AppFiles//fooApp_1.2.0.0/fooApp.exe.manifest -CertFile mycert.pfx -Password mypass

创建/更新部署清单

mage -New Deployment -Install true -Publisher "Foo Corp." -ProviderUrl "http://fooserver/mydeploymentfolder/fooApp.application" -AppManifest AppFile/fooApp_1.2.0.0/fooApp.exe.manifest -ToFile fooApp.application [-Processor x86]

签署部署清单:

mage -Sign fooApp.application -CertFile mycert.pfx -Password mypass

答案 1 :(得分:0)

对于那些你可能仍然很困难的人,正如我最近所做的那样,在Octopus Deploy中使用Click-Once软件包:

我创建了一个步骤脚本模板,该模板将根据部署过程的上一步创建一次Click-Once包。将打包从上一步安装的二进制文件,并使用带有证书的mage签名包。

它应该有足够的参数来最终使用Octopus快速轻松地创建Click-Once包。

Script is available in the Octopus library

HTH