2010-12-08 9 views
0

Wix(v3.5)インストーラでXmlFile要素を使用して、インストールされているweb.config内の接続文字列を更新しようとしています。しかし、私は次のエラーを軽視しています。XmlFile要素の「有効な外部キーではありません」エラー

有効な外部キーではありません。表: XMLFILE、カラム:ファイル、キー(複数可): UpdateConnectionString

web.configのコンポーネントとファイル要素は、熱を使用して収穫される.wxsに配置されています。ここでは、「Site.Components.wxs」で次のようになります。ここでは

 <Component Id="Web.config" Guid="{E66D901B-8140-4162-96F3-8A29253659FE}"> 
      <File Id="Web.config" KeyPath="yes" Source="$(var.WEBSOURCEFOLDER)\Web.config" /> 
     </Component> 

は、私がここで

<Directory Id="SiteRoot" Name="SiteRoot"> 
    ... 
    <Component Id="WebConfigChanges" Guid="{A242616E-5515-4E77-8CB3-361A449118A4}" > 
     <RegistryValue Id="WebConfigChanged" Root="HKLM" Key="SOFTWARE\CompanyName\ProductName" Name="WebConfigChanged" Value="1" Action="write" Type="string" KeyPath="yes" /> 
     <util:XmlFile Id="UpdateConnectionString" 
      File="[#Web.Config]" 
      Action="setValue" 
      ElementPath="//configuration/connectionStrings/add[\[]@name=’Default’[\]]/@connectionString" 
      Value="[CONNNECTIONSTRING]"/> 
    </Component> 
    </Directory> 

は、いくつかの参照されている「Site.Feature.wxs」に最も最近使用したコンポーネントであります私がこれまで使用してきたページ:

http://ranjithk.com/2009/11/06/wix-update-application-configuration-files-during-installation/

http://www.mail-archive.com/[email protected]/msg03256.html

答えて

2

MSIとWiXのIDは大文字と小文字を区別します。 XmlFileはWeb.Configを使用しますが、ファイルのIDはWeb.configです。

+0

duh!私はその鍵をコピー/ペーストすると宣誓していただろう。私は今、エラーメッセージをよく理解しています。それはFile属性が問題を抱えていた鍵だと言っていました。私は何とか 'UpdateConnectionString' Idが気に入らなかったと思っていました。ありがとう! – Rick

関連する問題