【问题标题】:Can you install .NET Framework Client Profile 32 bit version on a 64 bit PC/OS?您可以在 64 位 PC/OS 上安装 .NET Framework Client Profile 32 位版本吗?
【发布时间】:2010-10-27 11:02:59
【问题描述】:

我问这个主要是因为我不想同时发布这两个版本,如果我需要在 x64 PC 上安装 64 位 .NET,在 32 位 PC 上安装 32 位 .NET,那么我需要进行此项检查在我的加载器应用程序中为正确的 PC 下载正确的版本。

但是,如果我只是为所有人做一个,那会更容易 - 我只想知道在做这件事之前是否有什么我应该知道的(即:任何影响?)还是一切都好?

另外,当我在 64 位版本的 VS2010 中编译 exe 时,它​​是默认编译 32 位 exe 还是 64 位?我假设是 32 岁,但只是想确定一下。

谢谢。

【问题讨论】:

    标签: c# .net vb.net visual-studio visual-studio-2010


    【解决方案1】:

    如果您以 AnyCPU 为目标进行编译,则应用程序将在 64 位操作系统上以 64 位运行,在 32 位操作系统上以 32 位运行。如果您以 x86 为目标,则无论操作系统如何,该应用程序都将以 32 位运行。如果您以 x64 为目标,则该应用只能在 64 位操作系统上运行。

    .Net 的 64 位版本还包括 32 位 dll。

    如果您必须从 Internet 安装运行时,请使用 web installer。它将负责在客户端上下载和安装正确的版本。通过这种方式,您可以针对 AnyCPU(或 x86)并确保无论操作系统如何,应用都能运行。

    如果您需要将 .Net 与您的应用打包,请下载包含 32/64 位版本的完整文件 - http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

    Client profile web install

    Client profile full install

    可以使用/q 参数完成静默安装,您可能还想添加/norestart 并在必要时自行处理重启。

    查看blog postMSDN documentation,了解可用的开关。

    【讨论】:

    • 是否有您列出的打包文件的客户端配置文件版本,可以运行或静默安装吗?
    • 是的,我已经添加了指向它们的链接。 @Hans 关于在安装程序项目中取消 pre-req 的评论也是一个很好的提示。
    • 感谢您的回答,我想知道是否可以在安装 .NET 4.0 CP 后立即运行 .NET exe 而无需重新启动?如果可能的话,那就太好了。
    • 在大多数情况下,.NET Framework 安装后不需要重新启动。但是如果某些系统文件被占用而.NET Framework 无法替换它们,则可能需要重新启动。
    【解决方案2】:

    .NET 引导程序会在具有 64 位操作系统的计算机上自动安装 32 位和 64 位版本的 .NET 框架。你不需要做任何事情来告诉它这样做。避免自己分发 .NET 框架,您将很难跟上安全更新。只需勾选安装项目的先决条件中的选项以获取引导程序,如有必要,它将在目标计算机上安装期间下载最新和最好的。当您为托管程序创建安装程序时,会自动勾选该选项。

    VS2010没有64位版本,不用担心。

    您的 EXE 项目的 Project + Properties, Build 选项卡中的 Platform Target 设置是相关的。在 VS2010 中从头开始创建的项目中,它默认为 x86。除非您需要 64 位进程可以提供的额外虚拟内存空间,否则没有很好的理由将其更改为 AnyCPU 以用于发布版本。如果你确实改变了它,那么一定要彻底测试它。我知道你一直在修补非托管 COM 服务器,x86 可能是一个硬性要求。

    【讨论】:

    • @hans,谢谢你的回答,太棒了!我要做的是从 vb6 应用程序下载并安装 .net 4.0 客户端配置文件,然后在不重新启动的情况下下载并复制 .net exe(我的实际应用程序/程序)到计算机。因为这一切都需要默默地完成,以免打扰用户。如果我按照您的建议创建了一个包,是否可以执行 .NET 4.0 CP 和我的应用程序的完全静默安装? (我的应用只需要复制到一个特定的目录,不需要像图标/注册表这样的东西,因为它们都已经存在了)......
    • 背着用户秘密安装东西的日子,尤其是像 .NET 框架版本这样有影响力的东西,已经一去不复返了。您没有足够重视用户对她机器稳定性的关注,我不会帮助您找到后门。我严重怀疑是否存在。
    • 大多数 MS 安装程序支持静默安装。例如,查看带有 SharePoint 2010 的新 prereq 安装程序,它会下载并静默安装大量所需的东西。也就是说,不同版本的 Office 也捆绑了 .Net,Vista/Windows7 也是如此。因此,在一台中等新机器上,.Net 已经存在。将其静默升级到 v4 不会那么糟糕。但最好由管理员推动(至少在企业中)。
    • @hans,我不是在寻找后门。我已经准备好所有用户界面的东西,所以用户确切地知道如果他们点击“升级”他们将更新/接收什么,它包括 .NET CP 的完整描述标题和我的 .NET 应用程序的完整描述标题,如果我启动单独的安装程序供他们点击,它会为我的用户带来不一致的 UI 体验,并创建额外的步骤(点击/等待/阅读/选择等),这不是必需的,只会使用户复杂化,特别是如果他们对 PC 世界来说是非常新的。
    • @hans,我花了很多精力来计算 UI 因素并最大限度地减少用户的复杂性和步骤,以任何其他方式执行此操作将完全违背该范例。话虽如此,我对你的建议感到沮丧,即我会做任何违背我用户福祉的事情,当它来自我所仰望和尊重的人(比如你自己)时,伤害会更大。无论如何,感谢您迄今为止的贡献,但我已经想到了前进的方法。
    猜你喜欢
    • 2011-08-27
    • 1970-01-01
    • 2012-04-18
    • 2012-06-07
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2014-03-14
    • 2012-03-19
    相关资源
    最近更新 更多