Tamam, bir şeylerin eksik olduğunu görüyorum. GAC'a yüklemek ve ayrıca geliştirme için kullanıma sunmak için this'u takip etmeye çalışıyorum. Ancak, gerçekleşen tek şey, DLL'nin ProductDirectory öğesine bırakılmasıdır. GAC'de görünmüyor, eklenecek kayıt defteri anahtarı da yok. Bunu nasıl çalıştırabilirim?GAC'a yükleyin ve kayıt defterine kaydolun
Ürünün ilgili kısımları aşağıdan.
<?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>
zaten GAC yükleme olduğunu kapatır. Yanlış yere bakıyordum; .NET şimdi 4.0 ürün için ikinci bir GAC (C: \ Windows \ Microsoft.NET \ assembly) var. Bu kayıt defteri anahtarını bırakır. Ben Registry
kullanımdan kaldırıldı belirten bir uyarı başlamıştı, bu yüzden aşağıda o bileşeni değiştirilir, ama yine de çalışmıyorsa:
<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>
Tüm yükleyiciler için varsayılan olarak yönetici izinleri almıyor mu? Açık olan InstallPrivileges ile test yapmama izin ver. – zimdanen
Sorumu düzenledim. GAC zaten çalışıyordu - 4.0 GAC yerine 2.0-3.5 GAC'de bakıyordu. Ancak, kayıt defteri anahtarı çalışmıyor ve 'InstallPrivileges' kullanmak bunu düzeltmiyor. – zimdanen
Kendi cevabımı gönderdim, ancak bu tamamlandığından size ödül verdim ve bana bakmak için geri döndün. – zimdanen