我希望安装 Microsoft POS (服务点) 使用我的安装程序,在安装 .net fx、sql server 精简版等之后。
我愿意提供下载的 exe 和安装程序(无需从网络获取)。
我找到了这个 链接。链接中的文章指出您需要使用一些参数调用设置。
但我不知道如何明智地做到这一点。其次,我不确定这也是正确的方法。 (也许需要合并模块?)
有人知道吗?
I wish to install Microsoft POS (Point of service) with my installer, after installing .net fx, sql server compact edition, etc.
I am willing to supply the downloaded exe with installer (no need to get it from the web).
I've found this link. The article in the link indicate that you need to call setup with some parameters.
But I've got no clue how to do this Wix wise. Second I am not sure that it is the right way do it as well. (maybe a merge module is needed?)
Anybody knows?
发布评论
评论(4)
Wix 生成 MSI 文件,并且您无法从 MSI 内部启动安装程序。如果您找到 POS 的合并模块,您可以将其包含在您的 Wix 中。否则,您必须先使用引导程序安装 POS,然后启动 MSI(例如 DotNetInstaller)。
Wix produces MSI files, and you cannot launch a setup program from inside an MSI. If you find a merge module for POS you can included it in your Wix. Otherwise you'll have to use a bootstrapper to install POS first and then launch your MSI (like DotNetInstaller).
最近,我在尝试在 WiX 引导程序中为 .NET 提供 POS 时遇到了这个问题。开箱即用的 POS for .NET 可执行文件并不是很有帮助,特别是当尝试从另一个安装程序将其作为静默安装提供时。我发现解决这个问题的最佳方法是在更友好的自定义自解压可执行文件中为 .NET 提供 POS。这是对我有用的解决方案:
<块引用>
Setup.exe /ADDLOCAL 运行时,Posdm
Following the above steps will allow you to package POS for .NET in a "bootstrapper-friendly" way and it can now be included as an ExePackage element in your bundle that will be installed silently.
希望这对某人有帮助。
I have recently struggled with this problem while trying to provide POS for .NET in a WiX bootstrapper. Out of the box the POS for .NET executable is not very helpful, especially when trying to provide it as a silent install from another installer. I found the best way to work around this was to provide POS for .NET in a more friendly custom self-extracting executable. This is the solution that worked for me:
Following the above steps will allow you to package POS for .NET in a "bootstrapper-friendly" way and it can now be included as an ExePackage element in your bundle that will be installed silently.
Hopefully this helps someone.
如果您无法获得合并模块(如果发行商提供了该项目,这将是首选解决方案),您可以在安装中包含一个 EXE,然后在 WiX 安装期间作为自定义操作执行它。
来自 Tramontana 的关于 WiX 的优秀教程,这里有一个 自定义操作页面以及如何设置它们 - 您基本上需要定义一个
<在 WiX 文件中添加 CustomAction>
元素,并指定执行时要执行的操作:这将启动您刚刚作为应用程序一部分安装的文件,该文件在 WiX 脚本中被引用为
FoobarEXE
。这将引用您包含在 WiX 安装包(MSI 或 CAB)中的二进制文件(例如 EXE),但该文件并未作为安装的一部分进行安装,而是作为二进制文件提取。
一旦您知道要做什么,您需要定义在安装步骤的顺序中何时应执行此自定义操作:
此处,名为
LaunchFile
的自定义操作将在安装完成后执行,但前提是确定该应用程序尚未安装。所以,我想,您应该能够在 WiX 中使用自定义操作来完成您想要做的事情 - 请参阅 WiX 2.0 文档 和 Steven Bone 的博客文章系列了解更多信息。
希望这有帮助!
马克
If you can't get a merge module (which would be the preferred solution, if the item is made available by the publisher), you can include an EXE with the installation and then execute it during your WiX install as a custom action.
From the excellent tutorial on WiX at Tramontana, here's a page on custom actions and how to set them up - you basically need to define a
<CustomAction>
element in your WiX file and specify what to do when it's executed:This will launch a file that you just installed as part of your app and that is referenced in your WiX script as
FoobarEXE
.This would reference a binary file (e.g. an EXE), that you included in your WiX installation package (MSI or CAB), but that's not been installed as part of the installation, and that's been extracted as a binary file.
Once you know what you'll do, you need to define when in the sequence of installation steps, this custom action should be executed:
Here, the custom action called
LaunchFile
will be executed after the installation has finalized, but only, if it was determined that the app had not been installed yet.So, I guess, you should be able to do what you're striving to do with a Custom Action in WiX - see the WiX 2.0 documentation and Steven Bone's blog post series for additional info.
Hope this helps!
Marc
您可以使用 dotnetinstaller,随附的是示例 xml 文件。
运行 InstallerEditor.exe 并打开示例 xml 文件,修改它以适合您的使用,然后运行 InstallerLinker.exe,如下所示:
InstallerLinker.exe /Configuration:"c:\path\to\your\prod.xml" /Output:"c:\work\
setup.exe" /t:"%DOTNETINSTALLER%\Bin\dotNetInstaller.exe" /v
You an use dotnetinstaller, the attached is a sample xml file.
Run InstallerEditor.exe and open the sample xml file, modify it to suit your use, then run InstallerLinker.exe like this:
InstallerLinker.exe /Configuration:"c:\path\to\your\prod.xml" /Output:"c:\work\
setup.exe" /t:"%DOTNETINSTALLER%\Bin\dotNetInstaller.exe" /v