Tôi có C# COM .dll. Tôi muốn cài đặt .dll một lần, nhưng nó đã được đăng ký cho cả x86 và x64.WiX: đăng ký thành phần .NET COM cả x86 x64
Đây là WiX Tôi đã đăng ký chỉ x64:
<Component Id="NETDLL.dll" Directory="INSTALLDIR">
<File Id="NETDLL.dll" Name="NETDLL.dll" KeyPath="yes" Source="..\NETDLL.dll" />
<Class Id="{78BE...}" Context="InprocServer32" Description="NETDLL" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="NETDLL" Description="NETDLL" />
</Class>
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32\1.0.1.0" Name="Class" Value="NETDLL" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32\1.0.1.0" Name="Assembly" Value="NETDLL, Version=1.0.1.0, Culture=neutral" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32\1.0.1.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32\1.0.1.0" Name="CodeBase" Value="file:///[#NETDLL.dll]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32" Name="Class" Value="NETDLL" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32" Name="Assembly" Value="NETDLL, Version=1.0.1.0, Culture=neutral" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE...}\InprocServer32" Name="CodeBase" Value="file:///[#NETDLL.dll]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="Component Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Name="0" Value=".NET Category" Type="string" Action="write" />
<RegistryKey Root='HKLM' Key='Software\NETDLL'>
<RegistryValue Name='Description' Type='string' Value='NETDLL'/>
</RegistryKey>
</Component>
Làm thế nào tôi có thể viết trong HKCR \ CLSID, HKCR \ Wow6432Node \ CLSID, HKLM \ Software, và HKLM \ Software \ Wow6432Node tất cả cùng một lúc?
Viết CustomActions là một nỗi đau và khiến tôi nghi ngờ rằng nó sẽ hoạt động với gỡ cài đặt hoặc khôi phục. Có vẻ như tôi sẽ cần phải thực thi 'reg.exe' quá để thêm giá trị cho HKLM. –
regasm.exe không hỗ trợ các chuyển mạch dòng lệnh/x86 hoặc/x64. –