0

いくつかの質問を見て、すべての投稿を読みましたが、まだこれを成し遂げることができません。私は何かが欠けているか、それを行うことができません..

だから私はかなり単純な(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 を実行して展開パッケージを作成すると、以下を含むディレクトリが取得されます。

  1. 展開用に自動生成された cmd ファイル
  2. readme ファイル
  3. マニフェスト XML ファイル
  4. サーバーにデプロイする必要があるすべてのファイルを含む zip ファイル。
  5. .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 ファイルにカスタム ターゲットを追加してみませんか? (それも試しました...)

ありがとうございました!アロン。

4

1 に答える 1