问题标签 [wix3.6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wix - 我可以同时释放 msi 和 exe 吗?
我想发布 Setup Project 的 setup.msi 输出和 Setup.BootStrapper Project 的 setup.exe 输出,它会刻录 Setup.msi。由于我想同时发布(setup.msi & setup.exe)所以,安装顺序是不可预测的。如果用户先安装 setup.exe 然后 setup.msi 它工作正常。它提供了“删除”和“修复”选项。但如果先安装 msi,然后使用 exe,那么它也会安装 setup.exe。因此,它在 ARP 中显示了两个设置。我该如何解决这个问题?
wix - Wix ProgId 可以设置工作目录吗?
我的 wix 文件中有以下代码段。我需要设置工作目录,但 ProgId 似乎不支持这一点。Shortcut 元素具有 WorkingDirectory 属性,但 ProgId 似乎不支持它。还有另一种设置工作目录的方法吗?
wix - 无法使 WiX 功能操作状态正常工作
所以我有简单的条件属性集:
关于它的奇怪之处在于,尽管有日志,但始终设置属性,例如:
我假设我的 SetProperty 操作顺序可能是错误的,但是我不确定哪一个是正确的。但是 AFAIKAfter="CostFinalize"
对我的情况是正确的(在选择了功能之后)。
更新。找不到我的问题的解决方案。我建议您不要添加新答案,因为我现在无法真正测试它。版主可以完全删除这个问题。
visual-studio-2010 - WiX 源可以引用解决方案中其他项目的 NuGet 包吗?
我有两个项目的解决方案:
- .NET 应用程序
- WiX 设置项目。
我知道,可以在 WiX 源 ( $(var.WindowsFormsApplication1.TargetFileName)
) 中引用项目输出。
现在,我已将 NuGet 包引用添加到我的 .NET 应用程序。因此,我想将 NuGet 包内容引入我的设置。
有什么办法可以代替手动添加文件?
wix - 如何强制 WiX 引导程序下载 MSI 包?
我正在阅读WiX 工具集手册的这一部分,并且想知道如何强制 WiX 引导程序下载MSI包?例如,在安装我的应用程序之前,引导程序必须下载并安装:
- .NET Framework 客户端配置文件
- SQL Server 2008 R2 共享管理对象。
我想,我可以这样描述对应MsiPackage
:
但是元素的架构参考MsiPackage
告诉我们,
“至少,必须指定 SourceFile 或 Name 属性。”
而且,当然,它不会说谎 - 没有SourceFile
或Name
捆绑项目编译时出错。
添加RemotePayload
到MsiPackage
这样的:
导致构建错误:
无法读取包''。无法打开此安装包。验证该包是否存在并且您可以访问它,或者联系应用程序供应商以验证这是一个有效的 Windows Installer 包。
我错过了什么吗?
wix - I have installed major upgrade successfully but it also allowing another previous version install in wix
I have installed major upgrade (say #206) successfully and included code as in (#206):
Scenario is: I have installed build #177 then upgraded to build #206. It is still allowed to install #177 which I want to prevent this downgrade.
From build #178 onward I have changed product GUID for major upgrade and which is working fine.
Please suggest how to prevent this. I don't want to downgrade build below 177. If I have done major upgrade on build no <= 177
.
wix - 向项目添加新的自定义操作会阻止运行现有的自定义操作
我有一个自定义操作项目,其中包含我公司创建的安装程序使用的各种 CA,其中一些用于通过 Microsoft.Web.Administration API 操作 IIs7。
我在包含 IIs 相关 CA 的类中添加了一个名为 SetApplicationAutoStart 的新自定义操作。此自定义操作用于设置强制 II 预加载和启动 WCF 服务的 autoStart 属性,以缩短初始响应时间。
添加此操作后,名为 SetAppPoolLoadUserProfileTrue 的现有 CA 停止工作。这个 CA 强制站点上的设置为 true,即使计算机上的默认站点已更改,因此此设置为 false,所以我们确实需要它来工作。
当操作失败时,日志文件包含以下行。
这看起来像是从 PE 中提取 dotnet PE 以执行此操作的问题。二进制文件中的所有其他 CA 都可以正常工作,包括新的 CA。
wix - WiX Heat 工具,创建带有 Win64 属性的组件
有没有办法使用heat
具有部分Win64
属性的工具生成文件Component
?
问题是,在我的 64 位安装程序中,大多数文件都是 32 位组件,必须Win64="no"
在Component
条目中标记。我使用heat
工具来生成它们,因此需要额外的手动步骤,这破坏了我们的自动化构建。
更新:简短的回答是“否”(标记为答案),我想我会使用一些可以完成这项工作的附加工具。
visual-studio-2010 - 如何在 WiX 3.6 中包含依赖于配置的项目输出
我想知道,如何在 WiX 设置项目中包含依赖于配置的项目输出?例如,让我们看一下带有一个 .NET 应用程序和一个 Wix 安装项目的 Visual Studio 解决方案。
我在安装项目中添加了对 .NET 应用程序的引用,并在安装源中创建了组件:
因此,我希望 WiX 将在其发布设置 msi 中包含MyApp的发布版本,并在 debug msi 中分别包含调试版本。否则,对项目输出的引用对我来说毫无意义。
但总是有调试版本。我究竟做错了什么?
更新。
这是 VS 输出窗口中的蜡烛命令提示符:
------ 重建所有开始:项目:MySetup,配置:Release x86 ------
C:\Program Files\WiX Toolset v3.6\bin\candle.exe -d"DevEnvDir=C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\" -dSolutionDir=D:\Projects\Research\Wix_ProjectOutput\ -dSolutionExt=.sln -dSolutionFileName=Wix_ProjectOutput.sln -dSolutionName=Wix_ProjectOutput -dSolutionPath=D:\Projects\Research\Wix_ProjectOutput\Wix_ProjectOutput.sln -dConfiguration=Release -dOutDir=..\Release\ -dPlatform=x86 -dProjectDir=D :\Projects\Research\Wix_ProjectOutput\MySetup\ -dProjectExt=.wixproj -dProjectFileName=MySetup.wixproj -dProjectName=MySetup -dProjectPath=D:\Projects\Research\Wix_ProjectOutput\MySetup\MySetup.wixproj -dTargetDir=D:\Projects\ Research\Wix_ProjectOutput\Release\ -dTargetExt=.msi -dTargetFileName=MySetup.msi -dTargetName=MySetup -dTargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MySetup.msi -dMyApplication.Configuration=Debug -d"MyApplication.FullConfiguration=Debug|x86" -dMyApplication.Platform=x86 -dMyApplication.ProjectDir=D:\Projects\Research\Wix_ProjectOutput\MyApplication\ -dMyApplication.ProjectExt=.csproj -dMyApplication.ProjectFileName =MyApplication.csproj -dMyApplication.ProjectName=MyApplication -dMyApplication.ProjectPath=D:\Projects\Research\Wix_ProjectOutput\MyApplication\MyApplication.csproj -dMyApplication.TargetDir=D:\Projects\Research\Wix_ProjectOutput\Debug\ -dMyApplication.TargetExt= .exe -dMyApplication.TargetFileName=MyApplication.exe -dMyApplication.TargetName=MyApplication -dMyApplication.TargetPath=D:\Projects\Research\Wix_ProjectOutput\Debug\MyApplication.exe -out obj\Release\ -arch x86 Product.wxs
为什么MySetup的发布版本使用了 MyApplication 的调试配置?
更新 2。
从命令行使用 msbuild 时,这里是蜡烛的命令提示符:
在msbuild.log
:
C:\Program Files\WiX Toolset v3.6\bin\candle.exe -d"DevEnvDir=如果不是从 Visual Studio 中构建,则未定义" -dSolutionDir=D:\Projects\Research\Wix_ProjectOutput\ -dSolutionExt=.sln -dSolutionFileName =Wix_ProjectOutput.sln -dSolutionName=Wix_ProjectOutput -dSolutionPath=D:\Projects\Research\Wix_ProjectOutput\Wix_ProjectOutput.sln -dConfiguration=Release -dOutDir=..\Release\ -dPlatform=x86 -dProjectDir=D:\Projects\Research\Wix_ProjectOutput \MySetup\ -dProjectExt=.wixproj -dProjectFileName=MySetup.wixproj -dProjectName=MySetup -dProjectPath=D:\Projects\Research\Wix_ProjectOutput\MySetup\MySetup.wixproj -dTargetDir=D:\Projects\Research\Wix_ProjectOutput\Release\ - dTargetExt=.msi -dTargetFileName=MySetup.msi -dTargetName=MySetup -dTargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MySetup.msi-dMyApplication.Configuration=Release -d"MyApplication.FullConfiguration=Release|x86" -dMyApplication.Platform=x86 -dMyApplication.ProjectDir=D:\Projects\Research\Wix_ProjectOutput\MyApplication\ -dMyApplication.ProjectExt=.csproj -dMyApplication.ProjectFileName =MyApplication.csproj -dMyApplication.ProjectName=MyApplication -dMyApplication.ProjectPath=D:\Projects\Research\Wix_ProjectOutput\MyApplication\MyApplication.csproj -dMyApplication.TargetDir=D:\Projects\Research\Wix_ProjectOutput\Release\ -dMyApplication.TargetExt= .exe -dMyApplication.TargetFileName=MyApplication.exe -dMyApplication.TargetName=MyApplication -dMyApplication.TargetPath=D:\Projects\Research\Wix_ProjectOutput\Release\MyApplication.exe -out obj\Release\ -arch x86 Product.wxs
因此,在 msbuild 下一切正常。
更新 3。
看起来 WiX 使用了主动构建配置(参见 VS 工具栏上的组合框)。
我的意思是,如果Debug
在那里选择,WiX 项目将包括引用项目的调试输出。如果Release
选中,WiX 项目将包括发布输出。
从我的角度来看,这种行为是不正确的。Debug
安装程序必须包含引用项目的调试输出。Release
安装程序 -发布输出。
在这里发布了错误,但现在没有任何解释就关闭了。
有任何想法吗?