2011-12-19 178 views
3

我目前有两个WIX项目 - 一个用于创建x86安装程序,另一个用于创建x64安装程序。我想将这两个项目合并为一个使用变量来控制程序流的项目。ProgramFiles64Folder正在安装到WIX安装程序中的 Program Files(x86)

我有以下几点:

<?if $(var.Platform) = x64 ?> 
    <?define ProductName = "CableSolve Web (64 bit)" ?> 
    <?define Win64 = "yes" ?> 
    <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?> 
    <?else ?> 
    <?define ProductName = "CableSolve Web" ?> 
    <?define Win64 = "no" ?> 
    <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?> 
    <?endif ?> 

和我去到Visual Studio - >构建 - >配置管理器和设置的东西,像这样:

enter image description here

我再经历和删除两个项目的所有组件/目录中的所有“Win64 ='yes'”和“Win64 ='no'”参数。

我想知道是否还有比这更多的东西,但。当我创建我的x64安装程序时,我发现它尝试安装到C:\ Program Files(x86)...而不是C:\ Program Files。我假设这意味着代码正在下降到'其他'声明 - 但我不知道一种方法来确认这一点。

是否还需要设置其他变量才能确保正确生成x64安装路径?

感谢

我继承了所有下面的安装程序代码(不包括我目前的工作在其上添加变量)。我已经添加了$(var.PlatformProgramFilesFolder)以及EnvironmentVariables wxi。 enter image description here

EDIT2:这可能是罪魁祸首,但试图找到为什么它的配置是86:

------跳过全部重建:项目:CS Web安装的X64,配置:发行86 - -----

+0

安装64位版本时,ProductName显示为“CableSolve Web(64位)”还是“CableSolve Web”?另外,你可以向我们展示你的目录标签分支。 – 2011-12-19 22:37:14

+0

ProductName显示为CableSolve Web。我刚刚用$(var.Platform)替换了'ProductName ='CableSolve Web''位,并且正在构建另一个安装程序 - 好奇地想知道Platform是什么。我会在另一个显示我的电话号码标签分支的图像上传到另一个图像。 编辑:构建x64安装程序时,var.Platform是x86。 – 2011-12-19 22:43:46

+0

查看您的配置管理器屏幕,您有两个单独的项目,每个项目都构建一个安装程序。这两个项目是相同还是意外产生了不一致? – 2011-12-19 23:45:46

回答

6

两件事情:

  1. 您需要设置平台= “64” 属性中Package元素得到64 .msi文件
  2. 哪里是$(var.Platform)variab初始化?如果您打算使用WIX内置平台变量,则应根据WIX版本使用$(sys.BUILDARCH)或$(sys.PLATFORM)。
相关问题