0

複数の異なる環境にデプロイする方法を探しています。

つまり、dev、uat、prod1、および prod2 サーバー

私はmsdeployがこれでうまくいくという印象を受けています。現在、次のようなコマンドを使用して展開するものがあります

"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="D:\sourcepath" -dest:contentPath="D:\destpath", computerName=PRODSERVER1


"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="D:\sourcepath" -dest:contentPath="D:\destpath", computerName=PRODSERVER2

これは機能しますが、私が開発しているアプリケーションでは、展開が必要であり、環境ごとに変更する必要があるデータベース接続が含まれています。

<connectionStrings>
        <add name="DEVServer" connectionString="Data Source=DEVServer\SQLinstance;Initial Catalog=DBNAME;User ID=sqluser;Password=sqlpassword" providerName="System.Data.SqlClient" />
</connectionStrings>

また、これは WCF サービスであるため、エンドポイントの ID も環境ごとに変更する必要があります。

<identity>
            <dns value="DEVServer" />
</identity>

これをパラメータ化する方法はありますか? 複数の web.config ファイルを設定する必要がありますか? これについて行く最も簡単なルートは何ですか?

4

1 に答える 1

1

Visual Studio 2010 または 2012 を使用していると仮定すると、環境ごとに発行プロファイルをセットアップしてデータベース接続文字列を配置し、発行プロファイルごとに Web.config 変換をセットアップしてエンドポイントを変更し、展開できます。 msdeploy を直接使用する代わりに、コマンド ラインから MSBuild を使用します。

発行プロファイルの設定方法の詳細については、http://msdn.microsoft.com/en-us/library/dd465337.aspxを参照してください。

Web.config 変換の例については、http: //www.asp.net/web-forms/tutorials/deployment/deployment-to-a-hosting-provider/deployment-to-a-hosting-provider-web-config- を参照してください。ファイル変換-3/12

コマンド ラインから発行する場合、ソリューションを発行するための形式は次のようになります。

msbuild path\to\solution.sln /p:DeployOnBuild=true /p:PublishProfile=[プロファイル名] /p:Password=[パスワード]

ソリューションではなくプロジェクトを発行するには、.csproj/.vbproj ファイルを指定し、VS 2012 の場合は /p:VisualStudioVersion=11.0 (VS 2010 の場合は 10.0) を追加します。

于 2013-02-08T17:07:03.293 に答える