让Visual Studio 2015解决方案发布ClickOnce应用程序的最简单方法是什么?是否可以更改ClickOnce设置参数,例如运行构建时更新URL?
事实证明这很容易:
/property:PublishDir="C:\\Users\TeamCity\\Desktop\\publish\\"
<= ClickOnce工件的放置位置我还有另一个命令行参数/property:InstallUrl="http://my.domain/app/"
所以我可以为不同的构建(测试/生产)设置不同的安装位置。
然后我在* .csproj文件中添加了对此参数的引用:
<InstallUrl Condition="'$(InstallUrl)' == ''">http://default.domain/app/</InstallUrl>
<InstallUrl Condition="'$(InstallUrl)' != ''">$(InstallUrl)</InstallUrl>
您可能还需要* .csproj中的这些以使您的ClickOnce应用版本与TeamCity内部版本号同步:
<ApplicationVersion Condition="'$(build_number)' == ''">1.0.0.2</ApplicationVersion>
<ApplicationVersion Condition="'$(build_number)' != ''">$(build_number)</ApplicationVersion>
<BuildNumber Condition="'$(build_number)' == ''">1.0.0.2</BuildNumber>
<BuildNumber Condition="'$(build_number)' != ''">$(build_number)</BuildNumber>
并将构建号格式(Build Configuration> General Settings)设置为1.0.0.%build.counter%
。手动增加应用程序的主要/次要。
然后我做的是创建3个构建步骤,其中包含3个不同版本的上述版本,用于开发,测试和生产。所以我有相同的ClickOnce应用程序版本,它将从我的开发,测试和生产网站安装和自动更新(我将所有3个版本添加到网站的代码存储库中)。
我还将“AssemblyInfo修补程序”功能添加到TeamCity构建配置中,并将“system.Configuration”参数设置为“Release”。
戴夫上面的回答非常有帮助(谢谢戴夫!)。鉴于这是TeamCity - ClickOnce特定问题,我想我添加了一些截图(TeamCity v2017.2)
7.最后确保你的Configuration WinForms项目设置为build(这让我),否则TeamCity将不会生成ClickOnce文件。