2013-05-22 11 views
6

私はまだMSBuildのことを頭に入れようとしています。 現在、私はPackageWeb-Nuget-Packagevideo demo)から生成されたスクリプトを使用してpowershellスクリプトを使用して展開しています。私は数日前にそれを試してきましたが、それはうまくいくようでした。しかし、「突然」私はこの(私にとって新しい)の挙動をリンクできませんでしたので、私は「急に」書いた生成web.configファイル内の接続文字列をトークン化され、代わりに問題の接続文字列の私は"AutoParameterizationWebConfigConnectionStrings" - 接続文字列のトークン化を防ぐ唯一の方法はありますか?

connectionString="$(ReplacableToken_DefaultConnection-Web.config Connection String_0) 

を見ます私が前の時間にしたことは何でも。

まとめてみましょう:パッケージからのデプロイメントはうまく動作していますが、正しいコンフィグレーション変換も適用されていますが、このトークン化された接続文字列で終わります。

私は、私が本当に嫌いしかし、私は

(私はちょうどNuget、パッケージが作成する生成されたターゲット・ファイルにそれを置く)PropertyGroupに

<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings> 

を挿入する場合、私はこの問題を解決することができますことを実現これを必要とする可能性のある各プロジェクトにこの追加値を挿入する必要があります。特に私が最初にこの調整が必要であるかどうか分からなかったためです。昨日、それはうまくいって、私はこの余分な行をプロジェクトやターゲットファイルに挿入していませんでした。

私は誰かが、それがどのように動作しているかに影響を与えるかもしれない余分なスイッチやトリックや設定を知っていることを期待していました。

+0

これは古いですが、あなたはplzはあなたがこのloooooogプロパティを指定せずにそれをやったどのようにあなたの調査結果を共有することになります。* projのファイル? – ostati

+1

@Ostati正直言って、いつでも "AutoParameterizationWebConfigConnectionStrings = false"というプロパティは私の展開プロセスの一部です。私はそれに何ら問題を抱えていませんが、審美的なことに加えて、これがどんな形で回避されても、私はまだ非常に興味があります。 – DrCopyPaste

+2

@Ostatiこれを追加するには、これについて嫌いだった主なことは、各プロジェクト(プロジェクトのprojファイル)を変更することでした。しかし、これを行う必要はありません。プロパティをパラメータとして 'msbuild'に渡すことができます。これは、projファイルの既存のプロパティをオーバーライドするか、必要な新しいプロパティを追加することです(' AutoParameterizationWebConfigConnectionStrings'のように)。 ;)(例:http://stackoverflow.com/a/6052146/2186023) – DrCopyPaste

答えて

0

$(ReplacableToken_はパブリッシュ時にランダムに発生し、再構築および再パブリッシュ前にクリーンアップを実行して問題を解決できるように見えることに気付きました) しかし、常に手作業で私は、問題のWebサービスプロジェクトに

<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings> 

をも追加した、公開後のweb.config。

1

マイクロソフトでは、このHETのconnectionStringsが含まれています。デフォルトで自動パラメータ化を使用している。あなたは、これを追加することで、これを無効にすることができますプロジェクトファイルに追加します。

<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>

すべてを無効にするhereが説明するようにこれを追加することができます変換します。展開パッケージのため無効にすべてのパラメータについては

<TransformWebConfigEnabled>false</TransformWebConfigEnabled>

<DisableAllVSGeneratedMSDeployParameter>true</DisableAllVSGeneratedMSDeployParameter>

0

今私の会社は、単一のビルドのオフ動作しますTFSの「リリースマネージャ」ツールを使用していたことを、私たちは「ドンweb.configの変換をもう使用せず、代わりにMS WebDeployのparameters.xmlメソッドを使用して、異なる環境の値を交換します。しかし、私は上記の「自動生成」文字列の問題に直面しました。以下はそのための回避策です。

プロジェクトでparameters.xmlファイルを使用している場合、パラメータに接続文字列の自動生成されたものと同じ名前を付けると、機能します。

私は 'DBConnectionNameHere'を持っています(私の例のconnectionStrings 'name'はweb.configにあります)。次に、名前に "-Web.config Connection String"を追加するだけです。今、自動的に生成されたconn文字列の代わりにparameters.xmlファイルで自分自身をオーバーライドするだけで、余計な無害の 'parameterEntry'子タグを追加できます。例えば

<parameter name="DbConnectionNameHere-Web.config Connection String" defaultValue="#{TokenHereOrActualValue}#"> 

    <parameterEntry kind="XmlFile" scope="\\web.config$" 
match="/configuration/connectionStrings/add[@name='DbConnectionNameHere']/@connectionString" /> 

</parameter> 

希望誰かを助けます!

クリス

関連する問題