いくつかの質問を見て、すべての投稿を読みましたが、まだこれを成し遂げることができません。私は何かが欠けているか、それを行うことができません..
だから私はかなり単純な(ASP.NET MVC)プロジェクトを持っています。私のプロジェクトのルートには、次のようなパラメーター定義を含む parameters.xml ファイルがあります。
<?xml version="1.0" encoding="utf-8" ?>
<parameters>
<parameter
name="Realm"
description="Realm for ADFS authentication"
defaultValue="http://somewebsite">
<parameterEntry
kind="XmlFile"
scope="Web.config"
match="/configuration/appSettings/add[@key='ida:Realm']/@value" />
<parameterEntry
kind="XmlFile"
scope="Web.config"
match="/configuration/system.identityModel/identityConfiguration/audienceUris/add/@value" />
<parameterEntry
kind="XmlFile"
scope="Web.config"
match="/configuration/system.identityModel.services/federationConfiguration/wsFederation/@realm" />
ここまでは順調ですね。この構造は非常によく理解されており、展開パラメータの名前 (「Realm」など)、そのデフォルト値、および Web.config ファイルで見つけることができるいくつかの XCLT オプションです。
ここで、Publish を実行して展開パッケージを作成すると、以下を含むディレクトリが取得されます。
- 展開用に自動生成された cmd ファイル
- readme ファイル
- マニフェスト XML ファイル
- サーバーにデプロイする必要があるすべてのファイルを含む zip ファイル。
- .SetParameters.xml ファイル
最後のファイルには、上で引用した parameters.xml ファイルで設定されたパラメータ値が含まれており、それらの値はそこで定義されたデフォルト値に設定されています。
たとえば、Realm のデフォルト値がhttp://somewebsiteに設定されている場合、生成された配置 SetParameters.xml で、次のレコードを取得します。
<setParameter name="Realm" value="http://somewebsite" />
パッケージがデプロイされると、これらの値がこの xml ファイルから取得され、元の parameter.xml ファイルで定義された XPath に従って、Web.Config の値が置き換えられます。
ここで、デプロイ パッケージをビルドするときに、このパラメーター (および他の多くのパラメーター) をオーバーライドする必要があります。これは、デプロイ プロファイルごとに異なる値が必要なためです。
キーは、公開設定を担当する私の .pubxml ファイルのようです。Sayed Hashimiがここで言ったこと、こことここで与えられた以前の回答、ここも(そして他の人も)など、多くのオプションを試しました...いまいましいパラメータに違いはないようです!
何か不足していますか?魔法のハックはありますか?
パラメータを完全に無視して、一致する web.config 変換に依存する必要がありますか? 他にアドバイスはありますか?.csproj ファイルにカスタム ターゲットを追加してみませんか? (それも試しました...)
ありがとうございました!アロン。