Msbuild 创建ClickOnce应用程序供其他人部署

Msbuild 创建ClickOnce应用程序供其他人部署,msbuild,clickonce,Msbuild,Clickonce,我有一个WPF应用程序,正在使用MSBuild命令从持续集成服务器(TeamCity)创建ClickOnce部署 然后,我想将部署文件提供给其他人,这样他们就可以根据自己希望托管文件的服务器地址修改.application文件中的URL 问题是.application文件不能像这样简单地修改。它必须辞职 有没有一种简单的方法可以在不放弃.application文件的情况下完成我需要的工作 我找到了,但我没有使用Mage.exe进行部署。在部署MSBuild命令之后,我应该做什么来完成我需要的工作

我有一个WPF应用程序,正在使用MSBuild命令从持续集成服务器(TeamCity)创建ClickOnce部署

然后,我想将部署文件提供给其他人,这样他们就可以根据自己希望托管文件的服务器地址修改.application文件中的URL

问题是.application文件不能像这样简单地修改。它必须辞职

有没有一种简单的方法可以在不放弃.application文件的情况下完成我需要的工作

我找到了,但我没有使用Mage.exe进行部署。在部署MSBuild命令之后,我应该做什么来完成我需要的工作

我的参数:

/P:Configuration=Release /P:Platform="x86" /P:DeployTarget="Publish" /P:SupportUrl="http://www.company.com" /P:ErrorReportUrl="http://www.company.com" /P:PublisherName="company" /P:ProductName="Product name" /P:TrustUrlParameters="true" /P:UpdateMode="Foreground"/P:PublishUrl="http://localhost/Installer/" /P:UseManifestForTrust="true" /P:MapFileExtensions="true" /P:PublishDir="../../Installer/" /P:ApplicationVersion=%Version%

应用程序应该能够更新。

您可以删除
deploymentProvider
元素;这将允许您从多个位置(即您的案例中的多个环境或多个组织)部署签名ClickOnce

从.NET Framework 3.5开始,您不再需要在部署清单中指定deploymentProvider来部署ClickOnce应用程序以供在线和离线使用。这支持这样的场景:您需要自己打包并签署部署,但允许其他公司通过其网络部署应用程序


分步教程正确地解释了这一点。您可以签署应用程序清单,但不能签署部署清单。客户更改url,然后使用
mage.exe-Sign windowsformsap1.application-CertFile MyCert.pfx进行签名。好的,一开始它不起作用,使用MageUI.exe,我必须在保存对.application文件的修改之前重新选择.manifest文件,我不知道为什么。。。因此,如果不重新指定.application文件,绝对无法修改URL,对吗?谢谢你的回答。当我安装应用程序时,发布者被设置为“未知发布者”,它不接受我的证书。如果使用MageUI.exe打开.manifest文件,则不会选中“使用应用程序清单获取信任信息”。(但我使用了“/P:UseManistforTrust=“true”)Thx,但它将在哪里检查更新?如何在修改MsBuild命令时删除它?我尝试删除“/P:PublishUrl”“参数,但它用本地路径替换了部署提供程序…@Gab它应该检查来自安装它的相同位置的更新。我不知道您是否可以使用MSBuild属性删除它,我过去常常在配置转换后辞职时这样做,但我编写了一个自定义任务并以编程方式完成了它。@Gab我想它可能是
PublishUrl
,请在记事本中打开您的.csproj并查看“确定”处的描述谢谢。所以我所要做的就是找到一种方法删除DeploymentProvider,然后一切都应该按照我的需要进行?只托管一个带有“安装”按钮的publish.htm页面,该按钮指向“.application”文件?@Gab。这就是想法,这就是您在不更改URL的情况下部署到测试和生产环境的方式。尽管您在prod部署中忽略了它,但还是失去了一些安全性。