2013-09-24 1 views
2

열을 사용하여 파일 디렉토리에 WiX 조각을 자동으로 생성하고 있습니다. - .wxs 파일을 만들 때 구성 요소에 불필요한 태그가 포함되는 이유는 무엇입니까? 좋아 클래스 파일의사용시 불필요한 태그를 피하는 방법 열을 입히기

<File Id="fil7DC27EB4CA5B9970A7CBD422D919CCFF" KeyPath="yes" Source="$(var.SourcePath)\bin\Microsoft.Practices.EnterpriseLibrary.Common.dll" /> 
    <ProgId Id="Record" /> 
    <RegistryValue Root="HKCR" Key="CLSID\{00AB5D3B-4FAB-35AB-8916-59EE0247EFF1}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" /> 
    <RegistryValue Root="HKCR" Key="CLSID\{00AB5D3B-4FAB-35AB-8916-59EE0247EFF1}\InprocServer32\5.0.414.0" Name="Class" Value="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSourceElement" Type="string" Action="write" /> 
    <RegistryValue Root="HKCR" Key="CLSID\{00AB5D3B-4FAB-35AB-8916-59EE0247EFF1}\InprocServer32\5.0.414.0" Name="Assembly" Value="Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Type="string" Action="write" /> 
    <RegistryValue Root="HKCR" Key="CLSID\{00AB5D3B-4FAB-35AB-8916-59EE0247EFF1}\InprocServer32\5.0.414.0" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> 

.......... 많이

시나리오 1

<Component Id="cmpFF03591E2D2B9B2AA2AA444299A693DB" Directory="dir7307A6085BD4ABD9B8955C093FD541F5" Guid="*"> 
    <Class Id="{00AB5D3B-4FAB-35AB-8916-59EE0247EFF1}" Context="InprocServer32" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSourceElement" ThreadingModel="both" ForeignServer="mscoree.dll"> 
    <ProgId Id="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSourceElement" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSourceElement" /> 
    </Class> 
    <Class Id="{0ED3627E-5196-3A33-8EDC-7DC7DFCE3A97}" Context="InprocServer32" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ByteArrayTypeConverter" ThreadingModel="both" ForeignServer="mscoree.dll"> 
    <ProgId Id="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ByteArrayTypeConverter" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ByteArrayTypeConverter" /> 
    </Class> 
    <Class Id="{10FA9802-2D3A-3CE4-95BB-7170AA4AE251}" Context="InprocServer32" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ConfigurationChangeEventSourceImpl" ThreadingModel="both" ForeignServer="mscoree.dll"> 
    <ProgId Id="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ConfigurationChangeEventSourceImpl" Description="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ConfigurationChangeEventSourceImpl" /> 
    </Class> 

........... 많은 다음 레지스트리 키

</Component> 
+0

는 다음 시나리오 2 <구성 요소 ID = "cmp8881C49A46B392150B03542DCE92B4F9"디렉토리 = "dir7307A6085BD4ABD9B8955C093FD541F5"가이 드 = "*"> <파일 아이디 = "filC4F1AC6BCC527A213767C3D4E4442B24"키 패스 = "예"출처 = "$ (VAR 같은 다른 시나리오가 .SourcePath) \ bin \ Modules.Manage.Service.Deployment.dll "/> Programmer

답변

5

내 질문 (Wix\heat.exe strange output)에서 답을 붙여 복사합니다 나를 위해 일하기 때문이다. Yan Sklyarenko는 다음과 같이 말했습니다 :

Supply heat.exe with -sreg and -scom command line switches. See heat.exe -? for more options 
+0

답장을 보내 주셔서 감사합니다. 나는 vs에서 wix 설치 프로젝트를 만들었고, 다음과 같이 .wixproj 파일에서 열을 자동으로 생성하는 구성 요소를 추가했다. pls tel 나 어디에서 명령 줄을 추가 할 수 있을까? ToolPath = "$ (WixToolPath)"AutogenerateGuids = "true"ComponentGroupName = "SourceComponentGroup"PreprocessorVariable = "true"Toolkit = "true" var.SourcePath "SuppressRegistry ="false "> Programmer

+0

나는 잘 모른다. 나는 heat.exe를 직접 사용하고 있습니다. – mynkow

1

클래스 및 레지스트리는 이진 파일이 COM 이진 파일임을 의미합니다. 그것은 ForeignServer = "mscoree.dll"을 볼 수 있기 때문에 C# COM 바이너리입니다.

COM 바이너리를 원하지 않는 경우 프로젝트에서 assemlyinfo.cs를 COMVisible = false로 지정할 수 있습니다.

관련 문제