注:MVCWebアプリと他のいくつかのプロジェクトを使用したVisualStudio 2017ソリューション。これらのすべてが、Webアプリプロジェクトによって参照されているわけではありません。これまで、VSを直接使用してテストサーバーに公開してきましたが、VSTSに移動し、ビルドとリリースの定義をセットアップしましたが、まだ機能していません。
私が達成しようとしているのは、(ホストされている)VSTSビルドエージェントに、(オンプレミスの)リリースエージェントがターゲットの宛先に簡単にコピーできる公開ファイルを生成させることです。そのため、ファイルを生成してパスを記録するために、VSコマンドラインからローカルでMSビルドステップをテストしようとしています。多分私はこれを必要以上に複雑にしているのでしょうか?
これらのオプションは、単一のzipアーカイブとそれに関連するファイルを作成し、それをアーティファクトステージングディレクトリに配置します。ファイルをアーカイブに入れずに、アーティファクトのステージングディレクトリに直接公開する方法はありますか?
VisualStudioビルド
MSBuildパラメーター
/t:My_MVCWeb_Project_Name /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
オンプレミスエージェントを使用する私のリリースでは、「ファイルのコピー」タスクがあり、宛先はIISアプリが配置されているUNCパスです。ただし、コピーするだけです。アーカイブ。では、公開プロファイルを使用しているかのようにファイルをアプリディレクトリに直接コピーするにはどうすればよいですか?
[update2-まだZipファイルが生成されています]
MSBuild my_solution_name /t:"my_project_name" /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:PackageLocation="D:\temp\local-dev-build-dir"
[更新3]これらをコマンドラインからテストとして試しましたが、何も生成されません
msbuild D:\app_dir>MSBuild my_solution_name.sln /t:"my_web_proj_name" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="D:\temp\app_build_dir\\"
/p:DeployDefaultTarget=WebPublish
を削除します
/p:PackageAsSingleFile=true
または、次のように変更します。
/p:PackageAsSingleFile=false
これにより、ファイルが圧縮されます。
また、公開方法をパッケージに切り替える必要がある場合もあります。
/p:OutDir=$(build.artifactstagingdirectory)
/p:WebPublishMethod=Package
これらすべてのパラメータがどこに文書化されているかについて誰かが知っていますか?/p:SOME-PARAMETER-NAMEのように
私はそれをどこにも見つけていません。何を書くべきかを言っている人々からのフォーラムでの返信だけですが、理由はわかりません。可能なパラメータの完全なリストがあればいいでしょう。
/p:PrecompileBeforePublish
/p:DeployOnBuild
/p:WebPublishMethod
/p:PackageAsSingleFile
/p:SkipInvalidConfigurations
/p:PackageLocation
/p:DeployDefaultTarget
等...
代わりにこれらのMSBuild引数を使用します。
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish