2016-05-25 7 views
2

私はmsDeploy(3.0)を使用してMVCアプリケーションを展開しています。私は、msdeployのビルド成果物を生成するビルドパイプラインを持っており、配備パイプラインは、プロダクションインスタンスに配備する前にweb.configの適切なweb.config変換を適用します。変換の1つに接続文字列の変更が含まれます。しかし、配備されたインスタンスを見ると、私のweb.configトランスフォームは、ビルド成果物のsetParameters.xmlのパラメータによって上書きされているようです。SetParameter.xmlの接続文字列パラメーターを無視する方法

理想的な動作は、すべての接続文字列の上書きが展開用パイプラインによってのみ制御されるように、Connection文字列をSetParameter.xmlに追加しないようにすることです。どのように達成するのですか?

以下

は、理想的には

<parameters> 
     <setParameter name="IIS Web Application Name" value="Default/Foo"/> 
    </parameters> 

ようになりSetParameters.xmlファイルのサンプル

<parameters> 
     <setParameter name="IIS Web Application Name" value="Default/Foo"/> 
     <setParameter name="Foo-Web.config Connection String" value="Server=Foo,1433;Database=Bar;Integrated Security=SSPI;MultiSubnetFailover=True;App=Something;Connection Timeout=25"/> 
    </parameters> 

である私はまだないMSBuildのステップにparameters.xmlファイルを渡す試してみましたコネクションストリングのパラメータが入っていますが、うまくいきませんでした。

答えて

6

数時間壁に頭を突きつけた後、私は最後に解決策を考え出しました。 MsBuildは接続文字列がパラメータ化されないようにするパラメータ-p:AutoParameterizationWebConfigConnectionStrings = falseを取ります。残念ながら、このパラメータにはほとんどまたはまったくドキュメントがありません。

また、あなたのビルド構成のPropertyGroupに

 <AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings> 

を追加するプロジェクトごとにこれを設定することができます。

関連する問題