0

Web.config があり、次に Web.Release.config を使用して、運用環境にデプロイするときに Web.config を変換するという単純なシナリオがあります。変換は、VS 内で公開する場合にのみ自動的に実行されます。また、展開に VS を使用していません。外部ソース管理とクルーズ コントロールを使用してビルドおよび展開しています。

この問題に対するいくつかの解決策を見てきました。

1) ベースの web.config ファイル (Web.base.config) を使用して、プロジェクト ファイルを変更することにより、ビルド プロセス中に Web.config ファイルを上書きできるようにします。2) これを処理する拡張機能をインストールする 3) クルーズ コントロール内でターゲットをインポートし、基本的に #1 と同じことを手動で変換を実行しますが、これには宛先 web.config とは別の基本構成ファイルが必要です。

これらすべての問題は、web.config の名前を変更する必要がある (たとえば、Web.base.config に変更する) か、Web 構成を別のディレクトリに移動して、変換が発生すると上書きされないようにする必要があることです。ベース (オリジナル) web.config.

これを行うと、web.config を変更する nuget パッケージをインストール/更新すると、Web.config に変更が追加され、変換が発生するたびに変更がベースに適用される必要があるときに上書きされます。ウェブ構成。

私はどこでも検索しましたが、誰もこれを問題として言及していません。何か不足していますか?元の Web.config ファイル名/場所を変更する必要のないソリューションを誰かが提供できることを願っています。

4

1 に答える 1

1

これは、変換タスク自体が web.config をロックしているためです。

最も簡単な解決策は、変換前にコピー タスクを使用して構成を web.config.copy にコピーすることだと思います。次に、web.config.copy を web.config.transformed に変換し、それを web.config にコピーして戻します。

コピー タスクは読み取り専用で上書きできるため、ソース管理されたファイルで問題が発生することはありません。

于 2013-11-03T11:57:41.583 に答える