簡體   English   中英

如何使用構建定義發布ClickOnce應用程序?

[英]How to publish ClickOnce application using build definition?

我正在通過右鍵單擊.csproj手動發布ClickOnce應用程序。 有沒有辦法可以直接從解決方案中做同樣的事情,這樣我就可以將它與構建定義一起用於持續集成?

您無法直接從解決方案發布ClickOnce應用程序,但您可以使用XAML構建和vNext構建構建和發布ClickOnce應用程序,並使用MSBuild參數“/ target:publish”使MSBuild創建ClickOnce發布文件夾。 以下是兩個博客,其中包含構建和發布ClickOnce應用程序的詳細步驟:

使用Team Build / VSO構建和發布ClickOnce應用程序,請參閱博客: http//blogs.msdn.com/b/tfssetup/archive/2015/09/15/build-and-publish-a-clickonce-app -使用-團隊集結vso.aspx

使用build vNext構建ClickOnce應用程序,請參閱博客: http//blogs.msdn.com/b/tfssetup/archive/2015/10/15/building-clickonce-apps-using-build-vnext.aspx

假設您正在使用XAML構建,那么我想通過XAML構建突出顯示博客中的要點。 要使用Team Build實現構建和發布ClickOnce應用程序,您需要使用以下步驟編輯XAML構建定義:

  1. 在項目屬性中設置發布路徑,該路徑對應於目標。 然后將您的項目簽入TFS。

  2. 創建模板TFVCTemplate.12.xaml的副本以進行自定義。 為了使構建過程獲得一些環境數據,您需要:

    • 創建兩個環境變量 - DropLocation和WorkingDirectory。

    • 從工具框中添加兩個GetEnvironmentVariable類型的事件。 在流程中添加您喜歡的任何地方。

    • 使用第一個設置變量DropLocation,數據為“Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.DropLocation”。

    • 使用第二個變量將變量WorkingDirectory設置為數據“Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.BuildDirectory”。

    • 創建DestinationLocation類型的新參數,並使用String類型設置為In。 這將用於保存最終數據的位置(文件位置)。

我們編輯XAML構建定義的原因是MsBuild完成ClickOnce發布的方式。 MSBuild發布不會將文件副本復制到目標,它會在bin中創建一個文件夾並將文件放在那里。

  1. 默認情況下,TFS會將bin文件夾復制到輸出放置位置。 但我們需要app.publish文件夾。 為了找到從發布文件夾中獲取已發布文件的方法。 你需要:

    • 在模板中搜索“復制二進制文件以刪除”活動。

    • 在屬性中寫入現有的源位置(可能是bin文件夾,如WorkingDirectory +“\\ src \\ Desktop \\ TeamAdmin \\ ClickOnceTest \\ ClickOnceTest)到這樣的 - WorkingDirectory +”\\ src \\ Desktop \\ TeamAdmin \\ ClickOnceTest \\ ClickOnceTest \\ BIN \\調試\\ app.publish”。

  2. 添加事件CreateDirectory,再次創建目錄。 我們可以使用之前創建的目標位置變量。 並將文件從放置位置復制到所需位置。

  3. 現在我們可以創建一個新的構建定義並輸入DestinationLocation和MSBuildArguments“/ target:publish”的值並對構建進行排隊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM