我正在开发一个用WIX编写的安装程序。它将PIDTemplate定义为]]>代码有效-询问28个字母和数字,包括两个连字符。但是,Microsoft文档http://msdn.microsoft.com/en-us/library/aa369797%28v=vs.85%29.aspx没有提到{50}。这是做什么用的?MSDN站点上的页面也很难理解。它说:Thealternatedigit,%,andalternatealphanumericcharacters,^,?,and`fieldsallowcustomactionstodifferentiatebetweenfieldsina
我正在开发一个使用WIX来安装应用程序的项目。其中一项要求是在安装当前版本之前删除旧版本。旧版本不是基于MSI,它是使用SetupApi(依赖于inf文件)创建的。我想这可以通过自定义操作来实现,逻辑如下:在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%NAME%中查找“旧”版本,如果可能的话提取UninstallString值如果设置了该值,运行将执行该命令的自定义操作,通常它是一个字符串,如RunDll32advpack.dll,LaunchINFSectionC:\PROGRA~1\PROGRAM\file.i
我正在使用WiX工具集v3.7和VisualStudio2013为Excel插件创建安装程序包。该插件依赖于.NETFramework4.5,我希望安装程序能够自动检测目标机器上是否存在所需的框架,如果不存在,则安装它。谷歌搜索让我来到这个页面:http://wix.sourceforge.net/manual-wix3/install_dotnet.htm,但该页面上有关如何创建bundle的说明链接已损坏。我已尝试将元素添加到我的根元素,但最终出现错误。我还尝试了一些我在网上找到的示例,但它们似乎都无法与在VS2013中创建项目期间为我生成的默认WiXlist一起正常工作。我需要在
我想将一个值附加到我的INCLUDE环境变量。这应该很容易。例如打字setPATH="C:/new_entry;%PATH%有效,并且可以验证echo%PATH%但是对INCLUDE做同样的事情并没有改变任何东西!此外,INCLUDE未在系统属性>高级>环境变量中列为环境变量,因此VisualStudio命令提示符是从其他地方获取它的。我查看了C:\ProgramFiles(x86)\MicrosoftVisualStudio12.0\VC\varsvall.bat,但没有帮助@echooffif"%1"==""gotox86ifnot"%2"==""gotousageif/i%1==
我如何将字符串本地化为在msi安装期间显示的不同语言(韩语、日语),例如:准备安装(下图),使用wix。任何帮助表示赞赏。提前致谢。 最佳答案 你不能。这条消息来自Windows安装程序服务本身,它对所有安装都是一样的,你无法更改它,它始终使用操作系统语言。 关于windows-使用wix本地化默认msi字符串,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31475887/
我的.wxs文件中有以下XML,用于在卸载时运行批处理文件:InstalledANDNOTUPGRADINGPRODUCTCODE和所以它应该运行位于安装目录中的批处理文件。我的批处理文件如下所示:schtasks/Create/F/SCONCE/ST22:05/TNexampleUninstall/TR"echohello"2>batch_log.log当我运行卸载程序时,我在batch_log.log中得到以下信息:ERROR:NomappingbetweenaccountnamesandsecurityIDswasdone.(40,4):UserId:似乎只有在创建新的计划任务时
我们在Wix中有一个安装脚本,其中包含片段、组件和一些自定义操作:但是,自定义操作之一SetEnvironmentVariable需要在设置用户后在文件底部的片段中运行。而这不会发生。SetEnvironmentVariable失败,因为找不到用户。InstallExecuteSequence中给出的序列在InstallFiles发生后开始。我试图找到一个更合适的位置来开始序列,使用给定的列表here。我试过PublishProduct,结果是一样的。有没有办法在自定义操作运行之前添加用户? 最佳答案 @zett42的建议很好。但是
我创建了一个托管的CustomAction以将*.MSI中未包含的2个文件复制到安装目录。虽然这在WindowsXP中有效,但在Windows7中失败。虽然日志显示文件已复制到所需位置,C:\ProgramFiles\MyApp\,但实际上它们被复制到C:\Users\MyUser\AppData\Local\VirtualStore\ProgramFiles(x86)\MyApp\。我的猜测是,这与修改程序文件夹的访问权限有关。这就是我在WiX中调用自定义操作的方式:CustomAction本身只是调用File.Copy()。安装程序复制的其他文件在Windows7中运行良好。只有那
我的安装程序必须将一个值附加到现有的多字符串注册表项(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\NotificationPackages):问题是,在卸载时,它会删除整个key:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA即。LSA下的所有值都被删除,有什么方法可以删除我附加的值(仅p1)并保留现有值? 最佳答案 WiX的文档元素说(强调我的):createAndRemoveOnUninstallC
我已经对此做了一些阅读,但我开始怀疑这是越来越多的工作。我想我可以简单地扫描注册表以查找有问题的修补程序。在尝试这样做的过程中,我了解到修补程序ID不再存储在注册表中。相反,MSFT鼓励用户使用他们的WindowsUpdateAPI。显然,WIX本身并不支持WindowsUpdateAPI。这是否意味着我需要利用自定义操作、与WindowsUpdateAPI交互、将结果返回给WIX,然后使用该结果控制代码流? 最佳答案 查看WMI的Win32_QuickFixEngineering类(class)。您必须编写一个自定义操作来对该类进