1

asp.netアプリケーションがあります。テストと本番の2つのデータベースをセットアップしました。更新をプッシュする前に、今すぐ書き込みます。本番環境を指すようにconn文字列を手動で変更します。アプリケーションを公開し、自動的に本番環境に変更するときにこれを行う方法はありますか?助けてくれてありがとう。

4

2 に答える 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 に答える