问题描述
我得编译成值为anycpu一个窗口服务。我试图让它进入我们的安装分发。然而...我不清楚的32位和64位版本InstallUtil的之间的差异。有谁知道什么(如果有的话)有?
I've got a windows service compiled as AnyCPU. I'm trying to get it into our installer to distribute. However... I am unclear on the difference between the 32 bit and 64 bit versions of InstallUtil. Does anyone know what (if any) there are?
在我的64位机,我可以运行在$(WINDIR)\ Microsoft.NET \ Framework64 \ V2.0.50727或$(WINDIR)\ Microsoft.NET \框架\ V2.0.50727。
On my 64 bit machine, I can run either the $(WinDir)\Microsoft.NET\Framework64\v2.0.50727 or the $(WinDir)\Microsoft.NET\Framework\v2.0.50727.
在这两种情况下,在任务管理器中所产生的服务进程不具备* 32标志适用于它。
In both cases, the resulting service Process in Task Manager does not have the *32 flag applied to it.
只有32位InstallUtil工作在32位机器(显然)。
Only the 32 bit InstallUtil works on 32 bit machines (obviously).
是否有必要使用\ Framework64 \版本InstallUtil吗?这是什么做什么不同?
Is there a need to use the \Framework64\ version of InstallUtil? What does it do differently?
推荐答案
根据这,你应该使用64位版本安装64位和MSIL组件,但它并没有说为什么。
According to this, you are supposed to use the 64 bit version to install 64-bit and MSIL assemblies, but it doesn't say why.
在.NET Framework 2.0版,32位版本开始 公共语言运行库(CLR)与船舶只有32位版本 安装程序的工具,但64位版本的CLR附带的 32位和64位版本的安装程序工具。当使用 64位CLR,使用32位安装程序工具来安装32位 组件,以及64位安装程序工具来安装64位和 Microsoft中间语言(MSIL)组件。这两个版本的 安装程序工具的行为是一样的。
我相信这里解释了原因。如果你看一下帖子的下方,这说明了两时之间的一些差异,使用32位intallutil。
I believe here explains why. If you look at the bottom of the post, it explains some differences between the two and when to use the 32-bit intallutil.
Installutil.exe是专为特定的平台,因此它会 开始作为一个32位或64位进程和相关的注册表配置单元会 更新。请注意,如果你有一个管理单元内置了与平台 开关,你只能将其注册在蜂巢中的一个 (32位或64位)。
这篇关于.NET InstallUtil工具 - 32位和64位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!