2

我想創建一個PowerShell v5腳本來構建和發佈VS2017 WCF Web服務應用程序(.NET Framework 4),以便我可以在Bamboo中自動執行它。我有msbuild命令工作,正確構建,現在我需要使用FolderProfile發佈項目到一個文件夾。如何自動化Visual Studio 2017 Web項目發佈到文件夾

我可以通過右鍵單擊項目並選擇發佈,然後選擇FolderProfile,手動執行成功。這會將需要部署的文件放入項目的bin \ Release \ PublishOutput位置中的網站。我想在Powershell腳本中自動執行發佈操作。

我試過了Sayed Hashimi's這個網站的建議,這個網站和下面類似(我只是用VS2017版本15.2,當然用我的實際值替換了項目名稱和配置文件)。

msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name> /p:Password=<insert-password> /p:VisualStudioVersion=15.2 

但是,這並沒有在bin\Release\PublishOutput位置放置任何文件。它看起來只是做了一個標準的構建。

編輯:

的msbuild列表這一行中,當我運行上述命令的輸出;

DeploymentUnpublishable: 
    Skipping unpublishable project. 

我已經通過this後GitHub上顯得有些已經列舉了解決方案升級到VS2017,我已經做的v15.2;

Microsoft Visual Studio Enterprise 2017 
Version 15.2 (26430.16) Release 

任何想法?

編輯 - 解決方案

@獅子座-MSFT提供這種解決方案

msbuild myproject\myproject.vbproj /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml /p:Configuration=Release 

這把文件放到BIN \發佈\ PublishOutput。

我花了好幾天尋找這個解決方案,我又增加了其他建議SO各種命令的參數和GitHub的論壇帖子,如/t:Publish/p:PublishProfileRootFolder/p:VisualStudioVersion=15.2。我刪除了那些,只是使用上面最後創建我需要的發佈輸出的行。

回答

2

這並沒有在bin \ Release \ PublishOutput位置放置任何文件。它看起來像它只是做了一個標準版本

我已經用你的命令行轉載了這個問題。研究這個問題很長一段時間之後,我嘗試刪除參數「/p:VisualStudioVersion=15.2」,然後重新發布的命令行項目:

msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile="MyProfile.pubxml" 

它建立併成功發佈,以及Web項目發佈到文件夾中您在MyProfile.pubxml中的選項「<publishUrl>」中設置。

因此,請嘗試在MSBuild命令行中刪除參數「/ p:VisualStudioVersion」,檢查它是否適用於您。

注意:我也爲Visual Studio 2015創建的項目測試了命令行與VisualStudioVersion,它工作正常。不知道這是否是Visual Studio 2017的問題,我需要確認,如果是Visual Studio 2017的問題,我會將此問題發送給Visual Studio團隊。

+0

這很好地解決了這個問題。我的最終命令行以msbuild myproject \ myproject.vbproj/p結尾:DeployOnBuild = true /p:PublishProfile=FolderProfile.pubxml/p:Configuration = Release。這將文件放入bin \ release \ PublishOutput。謝謝 – EiEiGuy

相關問題