Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Properties 如何使用属性设置安装路径?_Properties_Wix_Custom Action - Fatal编程技术网

Properties 如何使用属性设置安装路径?

Properties 如何使用属性设置安装路径?,properties,wix,custom-action,Properties,Wix,Custom Action,我想知道如何使用属性设置复制文件的安装路径。因此,请让任何人解释答案。如果您使用的是引导程序,您可以定义如下变量: <Variable Name="INSTALLFOLDER" bal:Overridable="yes" Type="string" Value="[ProgramFilesFolder]"/> 此变量的默认值为ProgramFilesFolder,但它可以被覆盖。 您可以在Process.Start(当

我想知道如何使用属性设置复制文件的安装路径。因此,请让任何人解释答案。

如果您使用的是引导程序,您可以定义如下变量:

<Variable Name="INSTALLFOLDER"
          bal:Overridable="yes"
          Type="string"
          Value="[ProgramFilesFolder]"/>

此变量的默认值为ProgramFilesFolder,但它可以被覆盖。 您可以在Process.Start(当引导程序被EXE调用时)中将其设置为参数,或者-如果您已经编写了自己的引导程序GUI-在GUI代码中设置变量

在MSI包中,必须将变量设置到MSI项目的Product.wxs中定义的MsiProperty INSTALLLOCATION中。 希望对你有帮助

        <MsiPackage Id='SetupPackage'
                    SourceFile='.\Resources\Setup.msi'
                    Permanent='no'
                    Cache='yes'
                    DisplayInternalUI='no'
                    Vital='yes'
                    Compressed='yes'
                    EnableFeatureSelection='no'
                    DisplayName='MySetup'>
            <MsiProperty Name="INSTALLLOCATION"
                         Value="[INSTALLFOLDER]" />
        </MsiPackage>

我知道现在回答这个问题可能太晚了,但有人可能会发现它很有用

Wix项目中定义的每个目录元素都可以使用其Id作为属性进行访问:

例如,如果您有:

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="My Directory" />
        </Directory>
    </Directory>
</Fragment>

您将拥有一个名为INSTALLFOLDER的属性,并且可以通过自定义操作访问该属性


看看我的答案,这将告诉您如何将参数传递到自定义操作并使用它们。

您不想使用InstallDirDlg吗?基本上,它只是
元素和它自己的子元素,所以如果您想在c:/programfiles/sample中安装,只需创建一个结构:
,您应该阅读。您在目录Id=“APPLICATIONROOTDIRECTORY”:)中添加了组件,您到底在寻找什么?运行MSI时,是否正在尝试传递安装路径?或者您正试图通过读取注册表或类似的内容来设置安装路径?我需要在属性中设置安装路径。然后希望在自定义操作中引用该属性。这就是我想要的。。