一部のプロジェクトでは継続的インテグレーションの設定プロセスを進めており、TFSを使用していますが、いくつかのリリース定義に問題があります。デプロイメントのビルドプロセスで作成されたWeb Deployパッケージを使用します。これまでのところ、我々が持っているビルド定義は以下の通りですリリースプロセスの相対パスとしてartifactディレクトリパスを取得します
:
パッケージの作成のためのパスはデフォルトですので、我々はアーティファクトディレクトリ内にそれを見つけることができます。しかし、問題は、サーバーのWebサイトのターゲットフォルダにあるファイルを抽出するときです。
我々が使用しているリリースの定義は次のとおりです。ダウンロードアーティファクト段階でこの部分で enter image description here
リリースを行うエージェントは、ビルドプロセス中に公表されたファイルへのアクセス権を持っているので、ここでは場所を知ります。 zipパッケージは$(System.ArtifactsDirectory)を使用してパスを持つことができますが、Deploy IIS Appタスクを使用すると、リリースを行っているサーバーと$(System.ArtifactsDirectory)に接続していますエージェントが設定されている成果物のローカルアドレスを与え、変数はC:\ agent_work \ r1 \ aのようなパスを与えます.Cはエージェントのローカルアドレスであり、.zipファイルはそのアドレスに存在しません。 \ Myserver \ $(System.ArtifactsDirectory)....のような新しいパスを構築することはできません。なぜなら、$(System.ArtifactsDirectory)は絶対パスであり、結果としてパス全体が\ Myserver \ C: \ Myfolder ....
私たちは他の解決策が必要です。ビルドプロセスでは、別のフォルダにパッケージを作成することを検討しています。この場合、パッケージはどこにあるのか常にわかります。エージェントに依存しませんこの方法でWeb Deploy Package path:\ Myserver \ packagefolder \ file.zipとして使用できますが、別のソリューションを使用したいと考えています。
アーティファクトフォルダに相対パスなどを使用する方法はありますか?