그래, 분명히 뭔가 빠졌어. GAC에 설치하고 개발할 수 있도록하기 위해 this을 따르려고합니다. 그러나, 유일한 일은 DLL이 ProductDirectory에 드롭되는 것입니다. GAC에 나타나지 않고 레지스트리 키가 추가되지 않습니다. 어떻게 작동시킬 수 있습니까?GAC에 설치하고 레지스트리에 등록하십시오.
아래의 Product.wxs 관련 부분.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Me.Common" Language="1033" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="ea52947a-0980-435d-a8f5-280d3526cb90">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<!-- The feature to install. -->
<Feature Id="ProductFeature" Title="Me.Common" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="ProductDirectory" Name="Me.Common">
<Directory Id="GAC" Name="GAC" />
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents">
<Component Id="RunTime_Me.Common" Directory="GAC" Guid="E2B19C22-DC01-432D-85B0-0E4948F95A43">
<!-- Add to GAC. -->
<File Id="RunTime_Me.Common"
Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)"
Assembly=".net"
KeyPath="yes" />
</Component>
<Component Id="DesignTime_Me.Common" Directory="ProductDirectory" Guid="C1BD8CD1-E834-49D5-B499-D9E313E70669">
<!-- Add locally. -->
<File Id="DesignTime_Me.Common"
Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)"
KeyPath="yes" />
<!-- Add to registry so that Visual Studio can find it via Add Reference. -->
<Registry Id="Registry_DesignTime_Me.Common_AssemblyFolders"
Root="HKLM"
Key="SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\[ProductName]"
Value="[$DesignTime_Me.Common]"
Type="string" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
은 이미 GAC에 설치되었다 밝혀졌습니다. 나는 틀린 장소에서보고 있었다; 이제 .NET에는 4.0 항목 (C : \ Windows \ Microsoft.NET \ assembly)의 두 번째 GAC가 있습니다. 레지스트리 키가 남습니다. 나는 Registry
은 더 이상 사용되지 않았다는 경고 얻고 있었다, 그래서 나는 아래에 해당 구성 요소를 교체,하지만 여전히 작동하지 :
<Component Id="DesignTime_Me.Common" Directory="ProductDirectory" Guid="C1BD8CD1-E834-49D5-B499-D9E313E70669">
<!-- Add locally. -->
<File Id="DesignTime_Me.Common"
Source="$(var.Me.Common.TargetDir)$(var.Me.Common.TargetFileName)"
KeyPath="yes" />
<!-- Add to registry so that Visual Studio can find it via Add Reference.
These require .NET v4.0 minimum. -->
<RegistryKey Root="HKLM"
Key="SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\[ProductName]">
<RegistryValue Type="string" Value="[$DesignTime_Me.Common]" />
</RegistryKey>
</Component>
</ComponentGroup>
기본적으로 모든 설치 관리자에 대한 관리 권한을 얻지 못합니까? 명시 적 InstallPrivileges로 테스트하겠습니다. – zimdanen
내 질문이 수정되었습니다. 이미 GAC는 4.0 GAC 대신 2.0-3.5 GAC를 찾고있었습니다. 그러나 레지스트리 키가 작동하지 않으며'InstallPrivileges'를 사용하여 레지스트리 키가 고쳐지지 않습니다. – zimdanen
내 자신의 답변을 올렸지 만, 이것이 완료되었으므로 현상금을 수여 했으므로 나를 보았습니다. – zimdanen