首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WiX安装程序对目录使用RegistrySearch结果

WiX安装程序对目录使用RegistrySearch结果
EN

Stack Overflow用户
提问于 2022-06-27 21:13:31
回答 1查看 46关注 0票数 0

我正在尝试使用WiX为一个名为SolidWorks的产品的外接程序创建一个安装程序。

查看文档使我相信,我应该能够根据注册表值查找位置,以找到安装目的地。

下面是我试图针对的注册表值:

如图所示,它位于HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\SOLIDWORKS 2022\Setup\SolidWorks Folder

我尝试遵循这些指令,并尝试了多次迭代,以下是最新的迭代。

代码语言:javascript
运行
复制
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="SolidWorks Add-In" Language="1033" Version="1.0.0.0" Manufacturer="My Company" UpgradeCode="073e3b99-1977-4a3e-a4dc-0d61cc6ddbee">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Description="SolidWorks Add-In Installer" Manufacturer="My Company" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate EmbedCab="yes"  CompressionLevel="high" />

        <Feature Id="ProductFeature" Title="Installer" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>

        <Property Id="MsiLogging" Value="v" />
        <Property Id="SOLIDWORKSDIR">
            <RegistrySearch Id="SolidWorksRegistry" Type="raw" Root="HKLM" Key="SOFTWARE\SolidWorks\SOLIDWORKS 2022\Setup" Name="SolidWorks Folder" />
        </Property>
    </Product>

    <Fragment>

        <Directory Id="TARGETDIR" Name="SourceDir">
                <Directory Id="SOLIDWORKSDIR" Name=".">
                    <Directory Id="My_Company" Name="My Company">
                        <Directory Id="INSTALLFOLDER" Name="SolidWorks Add-In" />
                    </Directory>
                </Directory>
        </Directory>
    </Fragment>

    <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
             <Component Id="AutofacLibrary" Guid="3124c97d-079d-48fe-bc7c-e594bf49ae4a">
                 <File Id="AutofacDLL" Name="Autofac.dll" DiskId="1" Source="..\SolidWorksAddIn\bin\Release\Autofac.dll" KeyPath="yes" />
                 <File Id="AutofacPDB" Name="Autofac.pdb" DiskId="1" Source="..\SolidWorksAddIn\bin\Release\Autofac.pdb" />
             </Component>
        </ComponentGroup>
    </Fragment>
</Wix>

这似乎完全忽略了注册表值,并且安装位置是C:\My Company\SolidWorks Add-In

我不知道需要改变什么。我如何不正确地定位注册表值,或者错误引用不允许安装程序将已安装的文件放在我希望它们位于的目录中的属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-28 06:31:06

根据上面的注释,问题是注册表项在64位的单元中,但是包是32位的。修复方法是要么将包设置为64位(默认情况下搜索位于64位位置),要么通过添加Win64='yes'属性使注册表搜索64位。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72778364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档