開発環境または運用環境で実行されるASP.NETアプリケーションに応じて、ASP.NETアプリケーションで異なるデータベース接続文字列とSMTPサーバーアドレスを使用する必要があります。
アプリケーションは、 WebConfigurationManager.AppSettings プロパティを介してWeb.configファイルから設定を読み取ります。
Build/Publishコマンドを使用してFTP経由でアプリケーションを運用サーバーに展開し、手動でリモートWeb.configを正しいものに置き換えます。
展開プロセスを何らかの形で単純化することは可能ですか?ありがとう!
Visual Studio 2010以降では、ビルド構成に応じてweb.configに変換を適用できるようになりました。
Web.configを作成するときに、ソリューションエクスプローラーでファイルを展開すると、2つのファイルが表示されます。
これらには、以下に使用できる変換コードが含まれています
詳細については、MSDNの Webアプリケーションプロジェクトの展開のためのWeb.config変換構文 を参照してください。
公式にはサポートされていませんが、非Webアプリケーションapp.config
ファイルに同じ種類の変換を適用することもできます。プロジェクトファイルを変更してmsbuildに新しいタスクを追加する方法については、 Phil Bolducブログ を参照してください。
これは長い間耐えられます Visual Studio Uservoiceでのリクエスト 。
Visual Studio 2010の拡張機能 以上、 " SlowCheetah 、"を使用して、構成ファイルの変換を作成できます。 Visual Studio 2017.3以降、 SlowCheetahはIDEに統合されました であり、コードベースはMicrosoftによって管理されています。この新しいバージョンはJSON変換もサポートしています。
Web.configの<appSettings>
タグは、独自のキー/値のセットで外部構成をロードするファイル属性をサポートします。これらは、web.configにある設定を上書きするか、それらに追加します。
サイトをインストールする環境に一致するファイル属性を使用して、インストール時にweb.configを変更することにより、これを利用します。これを行うには、インストーラーのスイッチを使用します。
例えば;
<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">
<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">
<appSettings file=".\EnvironmentSpecificConfigurations\production.config">
注意:
Web展開プロジェクトを検討しましたか?
2008を使用していない場合は、VS2005のバージョンもあります。
私も知りたいです。これは問題を特定するのに役立ちます
<connectionStrings configSource = "connectionStrings.config" />
次に、connectionStrings.configと「{Host} connectionStrings.config」を保持します。それでも問題はありますが、2つの環境で異なるセクションに対してこれを行うと、同じweb.configを展開してバージョン管理できます。
(そして、私はVSを使用しません、ところで。)
NAntビルドスクリプトを使用して、さまざまな環境に展開します。配置先に応じてXPath経由で構成ファイルを変更し、 Beyond Compare を使用して自動的に環境に配置します。
セットアップには1〜2分かかりますが、必要なのは一度だけです。その後、別のコーヒーを飲みながらバッチファイルが引き継ぎます。 :)
こちら 私が見つけた記事。
4つの環境(開発、テスト、ステージング、および本番)がある1つのプロジェクトで、アプリケーションが展開先のマシン名に基づいて適切な構成を選択するシステムを開発しました。
これは私たちのために働いた:
この例ではうまく機能しましたが、おそらくどこでも動作しません。
これを行うには、Enterprise Library構成エディターが役立ちます。基本構成ファイルを作成してから、各環境のデルタを作成できます。その後、基本構成とデルタをマージして、環境固有のweb.configを作成できます。情報をご覧ください こちら これは、私ができる以上にあなたをよく案内してくれます。
ビルド後のステップにすることもできます。デバッグとリリースに加えて「デプロイ」である新しい構成をセットアップし、ビルド後のステップで正しいweb.configをコピーします。
すべてのプロジェクトに自動ビルドを使用し、それらを使用してビルドスクリプトがweb.configファイルを更新して正しい場所を指すようにします。しかし、VSのすべてを実行している場合、それは役に立ちません。
これは、machine.configを使用する大きな利点の1つです。私の最後の仕事では、開発、テスト、および実稼働環境がありました。 machine.configは、接続文字列(適切なdev/test/prod SQLマシンへ)のようなものに使用できます。
実際の本番マシンにアクセスできない場合(共有ホストでホスティング会社を使用している場合など)、これは解決策ではありません。