我正在部署一个MSI安装程序的帮助下的用户控件。 安装程序是使用WiX 3.8创build的,应该将控件安装到用户计算机上的GAC中:
<Directory ID="D_GAC_PH" name="GAC"> <Component ID="RT_PRODUCTDLL" GuID="CC18029F-3D4D-4C16-8871-88438DF5F8C1"> <!-- Runtime,assembly in GAC --> <file ID="F_RT_PRODUCTDLL" name="control.dll" Source="$(var.ProductDLLPath)" KeyPath="yes" Assembly=".net"/> </Component> </Directory>
为了让控件显示在Visual Studio的“添加组件”列表中,有几个 资源指出为了这个工作,需要手动设置registry的某些键:
[HKEY_LOCAL_MACHInesOFTWAREWow6432NodeMicrosoft.NETFrameworkAssemblyFoldersProductname
下面的WiX组件注册键很好:
<RegistryKey Root="HKLM" Key="SOFTWAREMicrosoft.NETFrameworkAssemblyFolders$(var.CompanySafename)"> <RegistryValue Value="[$DT_ProductDLL]" Type="string"/> </RegistryKey>
注意,我select了没有“Wow6432”节点的密钥。 但是,这个密钥实际上是32位系统的预期密钥。 在64位系统上testing上述(非WoW)密钥导致正确的(WOW6432Node)密钥被添加。 我想,WiX / windows / windows Installer会将密钥redirect到64位的正确WoW节点。 (?)
NAnt和双平台构build – 在windows和Mono / linux上构build的最佳方式
将窗体设置为窗口的所有者
是否有可能通过关联的文件将命令行parameter passing给可执行文件?
如何在C#中使用websocket-sharp禁用强制连续帧
用外出对话框创build一个新的电话簿条目
在不同版本的WiX / windows Installer中有多可靠? 我希望这可以在较旧的windows Installer版本以及32位系统上工作。 这是logging或指定的地方? 或者,在WiX中使用条件并手动决定密钥会更好吗?
将最后一行添加到文件中的最简洁/最简单的方法
.NET 3.5安全问题
使用PHP和DOTNET类访问windowsregistry
目前的C ++最佳实践和IDE
linux和windows数据系统可以共存吗?
一般来说,你可以通过将组件设置为Win64来将注册表指向适当的位置,那么它就可以工作。 我相信Win64的默认值可能默认为软件包的体系结构,所以你可能有一个32位的设置。 要明确你可以标记组件为Win64 =“否”作为提醒,但简短的答案是,它应该是可靠的。 你的组件显然是默认的32位组件,因此它只是在新旧系统上做正确的事情。
总结以上是内存溢出为你收集整理的使用用于.NET控件的WiX安装程序在32个版本上设置registry项。 64位,WoW6432Node全部内容,希望文章能够帮你解决使用用于.NET控件的WiX安装程序在32个版本上设置registry项。 64位,WoW6432Node所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)