2009-08-03 4 views
0

GAC에 .NET 어셈블리를 설치하려면 Wix 설치 관리자를 쓰고 있습니다. 쉬운 ...Wix - 동적으로 GAC에 어셈블리 등록

내 질문은 :이 어셈블리는 기존 네트워크 폴더에서 발견 된 어셈블리를 가져 와서 각각을 등록 할 수 있습니다. 정확한 어셈블리 이름을 하드 코딩하지 않아도됩니까? 이렇게하면 장래에 계속해서 다시 사용할 수있는 단일 MSI를 만들 수 있습니다. 지금

내 코드의 개별 DLL에 포인트는 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="16c27e1f-8f59-40bc-9ce6-ba816eae4323" Name="GACInstaller" Language="1033" Version="1.0.0.0" Manufacturer="GACInstaller" UpgradeCode="7fb35788-63aa-4cb1-9ad2-fd965cdeb7c8"> 
    <Package InstallerVersion="200" Compressed="yes" /> 

     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLLOCATION" Name="GACInstaller"> 
        <Component Id="ProductComponent" Guid="ae2bb9bd-f8d6-4060-b25b-8147fac155d6"> 
      <File Id='my_assembly' Name='my_assembly.dll' KeyPath='yes' Assembly='.net' Source='C:\my_assembly.dll' /> 
        </Component> 
       </Directory> 
      </Directory> 
     </Directory> 

     <Feature Id="ProductFeature" Title="GACInstaller" Level="1"> 
      <ComponentRef Id="ProductComponent" /> 
    </Feature> 
    </Product> 
</Wix> 
+0

GAC에 설치하기 전에 최소한 해결해야 할 문제가 발생할 수 있음을 알고 있어야합니다. 조심해. :) –

답변

2

아니, 정말. 단순한 파일 이상은 MSI에서 업데이트해야합니다. 예를 들어 ProductCode (Product/@ Id)는 개별 설치마다 고유해야합니다. 파일 테이블 정보를 모두 업데이트해야합니다. 나는 WiX 툴셋이 모든 것을 처리하기 때문에 내가 잊어 버리는 다른 것들이있을 것이라고 확신한다.

+0

글쎄, 꽤 결정적입니다. 감사합니다 롭! –