使用TeamCity发布ClickOnce应用程序

时间:2015-08-26 12:30:51

标签: teamcity clickonce

让Visual Studio 2015解决方案发布ClickOnce应用程序的最简单方法是什么?是否可以更改ClickOnce设置参数,例如运行构建时更新URL吗?

2 个答案:

答案 0 :(得分:20)

事实证明这很容易:

  • 构建步骤是" MSBuild"
  • 构建指向Visual Studio解决方案的文件
  • 设置"目标"到"发布"
  • 添加"命令行参数": /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&gt; General Settings)设置为1.0.0.%build.counter%。手动增加应用的主要/次要。

我接下来要做的是创建3个构建步骤,其中包含3个不同版本的上述版本,用于开发,测试和生产。所以我有相同的ClickOnce应用程序版本,它将从我的开发,测试和生产网站安装和自动更新(我将所有3个版本添加到网站的代码库中)。

我还添加了&#34; AssemblyInfo修补程序&#34; TeamCity构建配置的功能和&#34; system.Configuration&#34;参数设置为&#34;发布&#34;。

答案 1 :(得分:1)

上面Dave的回答非常有帮助(谢谢Dave!)。鉴于此,我想出了一个TeamCity-ClickOnce特定问题,我添加了一些屏幕截图(TeamCity v2017.2)

  1. 我创建了两种配置(dev,prod),一种配置是在每次提交时触发的,另一种是manual(prod)。

dev and prod

  1. 我使用 Clean,Build,Publish
  2. Targets 创建了一个构建步骤
  3. 两个构建配置都将使用配置 发布

Build Step

  1. 两种配置的不同之处在于参数设置。我希望 dev prod 将ClickOnce文件发布到通过设置 system.PublishDir
  2. 指定的单独文件夹中
  3. 我还希望从单独的url访问 dev prod ,这可以通过使用 system.InstallUrl
  4. 完成。
  5. 请确保使用/终止 PublishDir InstallUrl ,否则您将收到404下载错误或目录路径错误。

Build Parameters 7.最后,请确保您的 Configuration WinForms项目已设置为可构建(这让我),否则TeamCity将不会生成ClickOnce文件。

Release set to build