2010-12-08 2 views
0

WIX (v3.5) 설치 프로그램에서 XmlFile 요소를 사용하여 설치중인 web.config에서 연결 문자열을 업데이트하려고합니다. 하지만 다음과 같은 오류가 발생합니다.XmlFile 요소에 "유효한 외부 키가 아닙니다"오류가 발생했습니다.

유효하지 않은 외부 키. 테이블 : XMLFILE, 열 : 파일, 키 (들) : UpdateConnectionString

의 Web.config 구성 요소 및 파일 요소는 열을 이용하여 수확하는 .wxs에 있습니다. 여기

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

내가 "Site.Feature.wxs"여기
<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.Components.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

관련 문제