首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIX Win64=" no“无效果

WIX Win64=" no“无效果
EN

Stack Overflow用户
提问于 2019-04-07 16:29:27
回答 1查看 257关注 0票数 1

我在安装程序中有以下组件

代码语言:javascript
复制
  <Component Id="my.dll" Guid="*" Win64="no">
    <File Id="my.dll" Name="my.dll" KeyPath="yes" ReadOnly="yes" DiskId="1" Source="$(var.TargetDir)/my.dll" />
  </Component>

在解决方案平台x64的visual studio配置管理器中,安装程序项目设置为x64。

在构建x64时,尽管Win64被设置为"no“,但在这一部分上构建仍然失败,需要查找my.dll

在我通过复制x86部分手动添加的wixproj中:

代码语言:javascript
复制
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
  <OutputPath>bin\$(Configuration)\</OutputPath>
  <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
  <DefineConstants>Debug</DefineConstants>
</PropertyGroup>

'Release|x64'做了同样的事情。并尝试删除以下内容:

代码语言:javascript
复制
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>

并将x86更改为x64,但这并没有帮助。

尽管使用Win64="no",为什么x64 build仍然使用这一行

EN

回答 1

Stack Overflow用户

发布于 2019-04-07 22:40:28

ReferenceUsing Project References and Variables

TargetPath:也许可以尝试使用$(var.ProjectName.TargetPath)而不是$(var.TargetDir)/my.dll.我认为这就是问题所在。TargetPath将是您构建的内容的完整路径和文件名。有关所有这些参数(预处理器变量),请参阅上面的"Reference“链接。

Extra Notes:还有几件事:

请注意组件组件部分:如果您的Visual Studio项目组件名为,则应添加: WiX文件中的

  • 元素的属性会影响文件在目标系统上的安装位置,最终用户将在该位置进行安装。成功构建后,Visual Studio构建文件不在磁盘上的位置:
  • Program Files (x86) (32位)或Program Files (64-bit)
  • Windows (64位)或SysWOW64 (32位,是amazingly)

Quick Sample:这是从内存中获取的,可能不是很好,但下面是一个实际使用的预处理器变量示例(got this long answer on such constructs):

代码语言:javascript
复制
<?if $(var.MyProjectName.Platform) = "x64" ?>      
  <Component>
     <File Source="C:\Test\Test1.exe" />
  </Component>
<?endif?>

<?if $(var.MyProjectName.Platform) = "Win32" ?>
  <Component>
     <File Source="C:\Test\Test2.exe" />
  </Component>
<?endif?>

<Component>
   <File Source="$(var.MyProjectName.TargetPath)" />
</Component>

确保将配置设置为重新构建所有项目,包括WiX项目。可能会有意想不到的排除。注意对于平台,平台可能会说Win32x64 (而不是可能预期的x86) -常见错误。Inspect the compiled MSI.还要确保设置正确的项目构建顺序(操作项目依赖项)。

sys.BUILDARCH:还有一个内置的sys.BUILDARCH变量,老实说,这让我有点迷惑。我还没有用过它。在这里搜索:Preprocessor。和github

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

https://stackoverflow.com/questions/55557050

复制
相关文章

相似问题

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