簡體   English   中英

如何自動將Visual Studio 2017 Web項目發布到文件夾

[英]How to automate Visual Studio 2017 web project publish to folder

我正在嘗試創建PowerShell v5腳本來構建和發布VS2017 WCF Web服務應用程序(.NET Framework 4),以便我可以在Bamboo中自動執行它。 我有msbuild命令正常工作,正確構建,現在我需要使用FolderProfile將項目發布到文件夾。

通過右鍵單擊項目並選擇發布,然后選擇FolderProfile,我可以手動成功完成。 這會將需要部署的文件放在項目的bin \\ Release \\ PublishOutput位置中。 我想在Powershell腳本中自動化該發布。

我在Sayed Hashimi的網站上嘗試了這個建議,類似於下面的內容(我只使用15.2的VS2017版本,當然,用我的實際值替換項目名稱和配置文件);

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.

我在GitHub上看了這篇文章,有些人引用了一個解決方案,更新到VS2017的v15.2,我已經做過了;

Microsoft Visual Studio Enterprise 2017
Version 15.2 (26430.16) Release

有任何想法嗎?

編輯 - 解決方案

@ Leo-MSFT提供了這個解決方案......

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

這將文件放入bin \\ release \\ PublishOutput。

我花了幾天時間搜索這個解決方案,並在其他SO和GitHub論壇帖子中添加了各種命令參數,例如/t:Publish/p:PublishProfileRootFolder/p:VisualStudioVersion=15.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 StudioVersion為Visual Studio 2015創建的項目測試該命令行,它工作正常。 不確定這是否是Visual Studio 2017的問題,我需要確認一下,如果它是Visual Studio 2017的問題,我會將此問題發送給Visual Studio團隊。

暫無
暫無

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

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