单MSI安装正确的32位或64位C#应用程序 [英] Single MSI to install correct 32 or 64 bit c# application

查看:361
本文介绍了单MSI安装正确的32位或64位C#应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我这是为86(32位)和x64(64位)平台上建立了一个C#应用程序。我的编译系统目前输出两个MSI安装程序,每一个平台。在情况下,它有差别,我的C#应用​​程序包括一个窗口的任务栏的工具栏,这意味着安装DLL必须由explorer.exe程序被加载

I have a C# application which is built for both x86 (32 bit) and x64 (64 bit) platforms. My build system currently outputs two MSI installers, one for each platform. In case it makes a difference, my C# application includes a windows taskbar toolbar which means that the installed DLL must be loaded by the explorer.exe process.

是否有可能产生一个单一的MSI安装程序将安装取决于当前的操作系统是否是一个64位操作系统我的应用程序的版本是否正确?

Is it possible to produce a single MSI installer which will install the correct version of my application depending on whether the current OS is a 64 bit OS?

这目​​前已经被使用 HTTP实现EXE它执行架构检查,然后启动正确的MSI。不过,我想preFER纯粹MSI为基础的方法。

This has currently been achieved by using http://dotnetinstaller.codeplex.com/ to produce an EXE which performs the architecture check and then launches the correct MSI. However, I would prefer a purely MSI based approach.

推荐答案

没有,这是不可能的。见希思·斯图尔特的<一个href=\"http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx\">Different包都需要针对不同的处理器架构职位。微星来处理这个问题的唯一办法是沿着你描述的线条引导。如果你只是需要把一个文件或密钥或两个64位的位置,这是可能的(但不推荐)做了一个自定义操作,但改变目标安装位置,并使用内置的MSI文件支持赢得将不起作用。

No, this is not possible. See Heath Stewart's Different Packages are Required for Different Processor Architectures post. The only way to handle this with MSI is with a bootstrap along the lines of what you describe. If you just needed to put a file or key or two in a 64-bit location, it's possible (but not recommended) to do that in a custom action, but changing the target installation location and using built-in MSI file support won't work.

这篇关于单MSI安装正确的32位或64位C#应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆