asp.netアプリケーションがあります。テストと本番の2つのデータベースをセットアップしました。更新をプッシュする前に、今すぐ書き込みます。本番環境を指すようにconn文字列を手動で変更します。アプリケーションを公開し、自動的に本番環境に変更するときにこれを行う方法はありますか?助けてくれてありがとう。
質問する
2278 次
2 に答える
5
これにはweb.config変換を使用できます。
于 2012-05-23T12:04:10.530 に答える
0
ええ web.config 変換またはより良いアプローチは、構成を web/app.config から分離することだと思います。たとえば、ビルド構成ごとにフォルダーを用意します。
構成/デバッグ/connectionStrings.config
設定/ステージ/connectionStrings.config
構成/生産/connectionStrings.config
次に、アプリまたは web.config は次のようになります
<connectionStrings configSource="bin\connectionStrings.config" />
環境固有の構成を bin ディレクトリに取得するには、現在のビルド構成に基づいて構成をコピーするビルド後イベントを作成するか、手動で bin にコピーします。このようにして、目的の構成を取得するためにビルドを中継する必要はありません。
これを本当に自動化したい場合は、ビルド後のイベントは次のようになります
"$(SolutionDir)CopyConfigs.bat" "$(ProjectDir)" "$(ConfigurationName)" "$(OutDir).."
プロジェクト間でコピーを再利用できるように、バッチ ファイルを次のようにします。
@echo CopyConfigs.bat :
@echo Coping Config Files...
set projectDir=%1
set configurationName=%2
set outDir=%3
REM Trim Quotes
for /f "useback tokens=*" %%a in ('%1') do set projectDir=%%~a
for /f "useback tokens=*" %%a in ('%2') do set configurationName=%%~a
for /f "useback tokens=*" %%a in ('%3') do set str3=%%~a
@echo Project Directory: %1
@echo ConfigurationName: %2
@echo OutDir: %3
if not exist %1 goto ProjectDirectoryNotFound
REM Copy the configuration files to the projects output directory
xcopy /Y "%projectDir%Configuration\%configurationName%\*.config" "%outDir%"
xcopy /Y "%projectDir%Configuration\*.config" "%outDir%"
@goto END
:ProjectDirectoryNotFound
@echo Project Directory %projectDir% was not found.
@goto END
:END
@echo Coping Config Done
于 2012-05-23T12:48:42.120 に答える