2

トークナイザー タスクを実行できるように、追加のアーティファクトとして web.config ファイルを公開している Team Services でビルド定義をセットアップしています。私のビジュアル スタジオ プロジェクトでは、Web.Release.config ファイルにトークンを設定しています。ビルドが実行されると、トークンが構成ファイルに挿入され、各環境のリリース管理プロセスによって置き換えられます。

これは、過去数か月間機能しています。しかし、今日、web.config ファイルの「PathtoPublish が見つかりません」というエラーで失敗し始めました。アーティファクトの公開タスクでは、設定を公開するパスを次のように設定しています。

"MyWebProject\obj\Release\Package\PackageTmp\Web.config". 

今は次のようなパスを期待しているようです

"SolutionFolder\Branch\MyWebProject\obj\Release\Package\PackageTmp\Web.config".

パスに変数を使用する必要があると思います。しかし、正しい変数が何であるかわかりません。トークンが配置されるように、変換された Web.config ファイルを取得する必要があります。奇妙なことは、古いパスが 2 番目のチーム プロジェクトのビルド定義で正常に機能していることです。

4

2 に答える 2

3

これは、baywet が言及したビルド定義の変更、特に「リポジトリ」タブの「マッピング」セクションが原因である可能性があります。

web.configファイルのパスを直接参照する変数はありません。別の方法は次のとおりです。

  1. 「ビルド アーティファクトのコピーと公開」タスクを使用$(Build.SourcesDirectory)し、「コピー ルート」および**\PackageTmp\Web.config「コンテンツ」として指定します。web.configこれにより、フォルダーの下のファイルが検索されPackageTmp、公開されます。

  2. /P:outputpath="$(build.artifactstagingdirectory)\Temp"または、「Visual Studio Build」ステップで引数を追加して出力ファイルを$(build.artifactstagingdirectory)\Tempフォルダーにコピーし、「Publish Artifacts task」ステップで入力してファイル$(build.artifactstagingdirectory)\Temp\_PublishedWebsites\YourProjectName\Web.configを公開することもできweb.configます。

于 2016-06-20T03:06:55.587 に答える
2

おそらく、ビルド定義を更新し、気付かないうちにタスクが最新バージョンに更新されました (タスクの履歴でバージョン番号を確認してください)。
あなたが探している変数はわかりませんが、 $(BuildConfiguration) はパスの「リリース」または「デバッグ」部分を提供します。
$(build.stagingDirectory) は、アーティファクトとして収集される前にファイルがコピーされるパスを提供します。
次に、ミニマッチ パターンも **\Web.Config のようなものでオプションになる場合があります
。頑張って修正してください。

于 2016-06-18T19:54:24.070 に答える