如何让我的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>
为了让您的 ClickOnce 应用程序版本与 TeamCity 构建号同步,您可能还需要在 *.csproj 中添加以下内容:
<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>
将版本号格式设置为"1.0.0.%build.counter%" (构建配置 > 通用设置)。对于您的应用程序,手动增加主/次版本号。
接下来,我创建了3个构建步骤,针对开发、测试和生产环境分别使用上述三种不同的版本。这样,我的ClickOnce应用程序将从我的开发、测试和生产网站进行安装和自动更新(我将这3个构建版本添加到代码仓库中)。
我还向TeamCity构建配置中添加了“AssemblyInfo patcher”功能,并将“system.Configuration”参数设置为“Release”。
Dave的回答非常有帮助(谢谢Dave!)。鉴于这是一个与TeamCity - ClickOnce有关的问题,我想添加一些截图(TeamCity v2017.2)
7. 最后,请确保将您的Configuration WinForms项目设置为构建(这让我困扰了一段时间),否则TeamCity将不会生成ClickOnce文件。