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