我想用 Microsoft Wix 3.8 构建一个安装程序,它实际上只是注册了一些 COM 组件并为服务器共享上的程序创建了一些快捷方式。提前指出:这个程序是一个遗留工具,很遗憾,它的启动或使用方式不会改变。所以我需要我的安装程序询问三个路径:服务器安装路径(作为 unc)和两个附加路径,也在服务器上(也作为 unc)。
我已经在第一条道路上苦苦挣扎。一旦我添加它,它似乎就很难连接到我必须在我的 product.wxs 中指定的某个目录。
这就是我的 product.wxs 的样子:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="613A5421-BF59-46DD-B363-05E55587B89F" Name="Test Client" Language="1033" Version="1.0.0" Manufacturer="Blub AG" UpgradeCode="A451E5EB-4AED-4A8A-ACBC-F65A34E86D45">
<Package Id="*" InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MediaTemplate />
<WixVariable Id="WixUIDialogBmp" Value="images\background.bmp" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<UIRef Id="WixUI_InstallDir" />
<Feature Id='Complete' Title='Foobar 1.0' Description='The complete package.'>
<Feature Id='TestClient' Title='Test Client' Description='Test Client' Level='1'>
<ComponentGroupRef Id='ProductComponents' />
</Feature>
</Feature>
</Product>
<Fragment>
<PropertyRef Id="NETFRAMEWORK20"/>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="ExpoWin" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER" >
<Component Id="ProductComponent">
<File Source="Blub.txt" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
(在我的原始代码中,我用自己的版本替换了 WixUI_InstallDir,以便我可以修改它以要求三个路径。但要指出我的问题,上面的代码就足够了)我不希望将“INSTALLFOLDER”链接到任何目录。但是一旦我改变
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
至
<Property Id="WIXUI_INSTALLDIR" Value="SERVERPATH" />
<Property Id="INSTALLFOLDER" Value="c:\program files (x86)\TestClient" />
并运行安装程序,我收到“2343 错误”:
调试:错误 2343:指定路径为空。安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码是 2343。参数是: , ,
好吧,希望这个问题很容易回答。我已经在网上搜索了几个小时。可能我还没有完全理解属性的概念。有人可以对此有所了解吗?