web-dev-qa-db-ja.com

Visual Studio 2017Webプロジェクトのフォルダーへの公開を自動化する方法

PowerShell v5スクリプトを作成して、VS2017 WCF Webサービスアプリケーション(.NET Framework 4)をビルドおよび公開し、Bambooで自動化できるようにしようとしています。ビルドを正しく実行するmsbuildコマンドが機能しているので、FolderProfileを使用してプロジェクトをフォルダーに公開する必要があります。

プロジェクトを右クリックして[公開]を選択し、[FolderProfile]を選択することで、手動で成功させることができます。これにより、Webサイトにデプロイする必要のあるファイルがプロジェクトのbin\Release\PublishOutputの場所に配置されます。 Powershellスクリプトでそのpublishactionを自動化したい。

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.

私はGitHubへの this の投稿を調べましたが、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など)で提案されているさまざまなコマンドパラメーターを追加しました。これらを削除して、行を使用しました。その上で、私が必要とした公開出力を最終的に作成しました。

8
EiEiGuy

これにより、bin\Release\PublishOutputの場所にファイルが配置されませんでした。標準ビルドを実行したように見えました

この問題をコマンドラインで再現しました。この問題を長い間調査した後、パラメータ「/p:VisualStudioVersion=15.2」を削除してから、コマンドラインでプロジェクトを再公開しようとしています。

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

ビルドと公開が正常に行われ、MyProfile.pubxmlのオプション「<publishUrl>」で設定したフォルダーにWebプロジェクトが公開されます。

したがって、MSBuildコマンドラインでパラメータ"/ p:VisualStudioVersion"を削除してみて、それが機能するかどうかを確認してください。

注:Visual Studio 2015によって作成されたプロジェクトのVisualStudioVersionを使用してそのコマンドラインもテストしましたが、正常に機能します。これがVisualStudio 2017の問題であるかどうかわからないので、確認する必要があります。VisualStudio2017の問題である場合は、この問題をVisualStudioチームに送信します。

6
Leo Liu-MSFT