标签: wix3

WiX技巧和提示

我们现在已经使用WiX一段时间了,尽管人们普遍抱怨易用性,但它还是相当不错.我正在寻找的是有用的建议:

  • 设置WiX项目(布局,参考,文件模式)
  • 将WiX集成到解决方案和构建/发布流程中
  • 为新安装和升级配置安装程序
  • 任何好的WiX黑客你都想分享

wix wix3 wix3.5

264
推荐指数
23
解决办法
21万
查看次数

Wix为所有用户/每台计算机创建非广告快捷方式

在WIX中,如何在allusers配置文件中创建非广告的快捷方式?到目前为止,我只能通过广告快捷方式实现这一目标.我更喜欢未公布的快捷方式,因为您可以转到快捷方式的属性并使用"查找目标".

在我看过的教程中,使用注册表值作为快捷方式的keypath.问题是他们使用HKCU作为根.使用HKCU时,另一个用户卸载该程序(因为它是为所有用户安装的),注册表项会被遗忘.当我使用HKMU作为根时,我收到ICE57错误,但当另一个用户卸载该程序时,该密钥将被删除.尽管HKMU看起来行为正确(每用户对所有用户),但我似乎被推向使用HKCU.

当我尝试创建非广告的快捷方式时,我会收到各种ICE错误,例如ICE38,ICE43或ICE 57.我见过的大多数文章都建议"忽略冰错误".必须有一种方法来创建未公布的快捷方式,而不会产生ICE错误.

请发布示例代码以获取工作示例.

shortcuts windows-installer wix wix3 advertised-shortcut

77
推荐指数
2
解决办法
3万
查看次数

如何在没有许可证页面的情况下构建最小的WiX安装程序UI?

我想使用WixUI_Minimal安装程序,但我不想要许可页面.我怎样才能做到这一点?

installer wix wix3

72
推荐指数
4
解决办法
3万
查看次数

WiX 3.0抛出错误217,同时通过持续集成执行

这是我们在Windows 2008上自动构建套件在运行ICE时(从WiX 2.0 迁移到WiX 3.0之后)引发的错误:

LGHT0217:执行ICE操作'ICE01'时出错.这种ICE故障的最常见原因是错误注册的脚本引擎.有关详细信息以及如何解决此问题,请参见http://wix.sourceforge.net/faq.html#Error217.外部UI消息记录器不期望以下字符串格式:"无法访问Windows Installer服务.如果未正确安装Windows Installer,则会发生这种情况.请联系您的支持人员以获取帮助." 在light.exe(0,0)中

此外,这些是事件日志中显示的错误:

MSIInstaller:无法连接到服务器.错误:0x80070005产品:[ProductName] - 错误1719.无法访问Windows Installer服务.如果未正确安装Windows Installer,则会发生这种情况.请联系您的支持人员以获取帮助

直观:

  • VBScriptJScript在admin下注册.
  • 集成服务具有桌面交互和所有文件的权限
  • 由另一个用户甚至是作为集成帐户登录的用户(通过RDP)在同一台机器上手动执行时构建成功

到目前为止,我已经没有想法了.

如何在保持ICE验证的同时解决此问题?

build-automation continuous-integration wix wix3

64
推荐指数
5
解决办法
2万
查看次数

Wix:每个组件一个文件或每个组件多个文件?

我应该将我想要安装的所有文件包装在单个组件中吗?将多个文件放在一个组件中有什么好处?

windows-installer wix wix3

64
推荐指数
2
解决办法
2万
查看次数

在WiX文件中,Name ="SourceDir"是指什么?

WiX文件似乎总是包含这一行:

<Directory Id="TARGETDIR" Name="SourceDir">
Run Code Online (Sandbox Code Playgroud)

什么是"SourceDir"?它是干什么用的?它不是真正的目录名称.这是一种神奇的价值吗?

windows-installer wix wix3

63
推荐指数
2
解决办法
2万
查看次数

WiX未定义的预处理器变量

我开始使用WiX进行自动构建以创建我的c#项目的msi,并且遇到错误"Undefined preprocessor variable'$(var.MyProject.TargetDir)'"

我使用的是最新的WiX v3.0.5419.在我的wxs文件中,我试图使用此网页上列出的预处理器变量(http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor- variables.aspx)

<Component Id="MyId" Guid="MyGuid">
   <File Id="MyId" Name="MyName" KeyPath="yes" 
      Source="$(var.MyProject.TargetDir)\MyName.dll" />
</Component>
Run Code Online (Sandbox Code Playgroud)

我已将MyProject的引用添加到.wixproj中,如果我在记事本中打开它,我可以看到引用.

<ItemGroup>
  <ProjectReference Include="..\MyProject.csproj">
    <Name>MyProject</Name>
    <Project>{guid}</Project>
    <Private>True</Private>
  </ProjectReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这是我用来创建msi的nant构建脚本.也许是因为.wixproj知道构建中没有使用的项目引用?

<exec basedir="${tools.wix}" managed="true" program="candle.exe">
  <arg line='-out "${tools.wix.objfile}"' />
  <arg value="../MySetup.wxs" />
</exec>
Run Code Online (Sandbox Code Playgroud)

请问有人能开导我吗?

build-automation preprocessor wix wix3 votive

44
推荐指数
1
解决办法
5万
查看次数

如何使用WiX安装程序注册文件类型/扩展名?

我没有在WiX文档(或Google)中找到这个问题的明确答案.当然我可以在HKCR中编写相应的注册表项,但这让我觉得很脏,我希望这是一个标准的任务,应该有一个很好的默认解决方案.

对于奖励积分,我想知道如何使其"安全",即不要覆盖文件类型的现有注册,并且只有在安装期间注册并且未更改时才删除卸载时的注册.

installation installer windows-installer wix wix3

36
推荐指数
3
解决办法
2万
查看次数

如何在WiX 3中注册Win32 COM DLL文件?

我找到了一个关于注册DLL的示例,使用Windows Installer XML工具集在MSI文件中注册COM Interop的程序集.,和WiX抱怨"AssemblyRegisterComInterop"属性.

我删除了它并将"Assembly"属性更改为win32,它说我需要指定AssemblyManifest属性,但是我应该放在那里?

com dll wix wix3

35
推荐指数
3
解决办法
3万
查看次数

WiX包括vs片段

  • WiX包含(.wxi文件)和WiX片段(.wxs文件)之间有什么区别?
  • 每个用例有哪些?
  • 应该使用哪个以及为什么?

wix wix3

33
推荐指数
2
解决办法
1万
查看次数