Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
QtIFW-安装程序配置文件中与平台无关的路径。可能吗?_Qt_Frameworks_Installation_Platform - Fatal编程技术网

QtIFW-安装程序配置文件中与平台无关的路径。可能吗?

QtIFW-安装程序配置文件中与平台无关的路径。可能吗?,qt,frameworks,installation,platform,Qt,Frameworks,Installation,Platform,我的安装程序有以下配置文件: <Installer> <Name>Application</Name> <Version>1.0.0</Version> <Title>Application</Title> <StartMenuDir>Application</StartMenuDir> <TargetDir>@HomeDir@\Comp

我的安装程序有以下配置文件:

<Installer>
    <Name>Application</Name>
    <Version>1.0.0</Version>
    <Title>Application</Title>
    <StartMenuDir>Application</StartMenuDir>
    <TargetDir>@HomeDir@\Company\Application</TargetDir>
    <MaintenanceToolName>MaintenanceTool</MaintenanceToolName>
    <AllowSpaceInPath>true</AllowSpaceInPath>
</Installer>

应用
1.0.0
应用
应用
@HomeDir@\Company\Application
维护工具

是的,可以使用脚本。在某个地方(我不记得现在在哪里,但这是一个官方的qt教程),我找到了这个函数,它可以进行您想要的转换:

var Dir = new function () {
    this.toNativeSparator = function (path) {
        if (systemInfo.productType === "windows")
            return path.replace(/\//g, '\\');
        return path;
    }
};
此函数可以在脚本中用于转换为本机分隔符(警告,从现在起我将解释此概念,不要将代码视为永久代码,因为它未经测试,可能包含一些错误)。您可以执行以下脚本:

var Dir = new function () {
    this.toNativeSparator = function (path) {
        if (systemInfo.productType === "windows")
            return path.replace(/\//g, '\\');
        return path;
    }
};

function Controller()
{
  if (installer.isInstaller()) {
    installer.setValue("TargetDir", Dir.toNativeSparator(installer.value("TargetDir")));
  }
}
然后,您必须修改config.xml,通过添加

<ControlScript>installer.js</ControlScript>
installer.js

如果设置不正确,可以尝试在组件中进行设置。这是在和中编写脚本的文档。

是的,可以使用脚本。在某个地方(我不记得现在在哪里,但这是一个官方的qt教程),我找到了这个函数,它可以进行您想要的转换:

var Dir = new function () {
    this.toNativeSparator = function (path) {
        if (systemInfo.productType === "windows")
            return path.replace(/\//g, '\\');
        return path;
    }
};
此函数可以在脚本中用于转换为本机分隔符(警告,从现在起我将解释此概念,不要将代码视为永久代码,因为它未经测试,可能包含一些错误)。您可以执行以下脚本:

var Dir = new function () {
    this.toNativeSparator = function (path) {
        if (systemInfo.productType === "windows")
            return path.replace(/\//g, '\\');
        return path;
    }
};

function Controller()
{
  if (installer.isInstaller()) {
    installer.setValue("TargetDir", Dir.toNativeSparator(installer.value("TargetDir")));
  }
}
然后,您必须修改config.xml,通过添加

<ControlScript>installer.js</ControlScript>
installer.js

如果设置不正确,可以尝试在组件中进行设置。以下是在和中编写脚本的文档。

它的工作方式应该是这样的。我需要做的更改是使用前斜杠指定路径
@HomeDir@/Company/Application
。谢谢你的帮助!它的工作方式应该是这样的。我需要做的更改是使用前斜杠指定路径
@HomeDir@/Company/Application
。谢谢你的帮助!