【问题标题】:How can I force a reboot during .NET Framework v4.0 setup?如何在 .NET Framework v4.0 安装过程中强制重启?
【发布时间】:2014-12-20 04:13:09
【问题描述】:

我基本上试图找到与this article中相同问题的答案:

如何在 .NET Framework 设置期间强制重新启动以确保我的设置能够正确处理它?

我完全按照那家伙的建议做了:

  1. 我有安装了 <.net v4.0 win7 v3.5>
  2. 我使用lock.exe将文件mscorier.dll锁定在sys32目录中,
  3. 运行从here下载的.NET v4.0安装程序。

但是,安装完成就好了,不需要重新启动!完成后如何强制 .NET v4.0 安装程序要求重新启动?关于我应该锁定写入的不同文件的任何想法?

我基本上想看看在我推迟所需的重启并尝试运行 .NET4.0 应用程序或 .NETv4.0 Windows 服务后会发生什么。链接的文章说:

如果您的应用程序尝试在安装结束时需要重新启动且尚未重新启动的 .NET Framework 版本之上运行,您可能会在应用程序中看到不可预测的行为。

但我宁愿自己看看...作为记录,我向下滚动到链接文章中的讨论,并且建议将 mscoree.dll 锁定在 %windir%\syswow64 文件夹中以用于 64 位 Windows,但是也没有帮助,安装完成正常。

【问题讨论】:

  • 您可能无法选择更晦涩的 DLL。它与配置 Internet Explorer 有关,允许它运行未签名的 .NET 程序集。您会注意到它尚未更新的可能性很小。选择 mscoree.dll,每个 .NET 应用程序都需要那个。当心比特。没有人会检查你的 lock.exe 是否真的有效。
  • @Hans Passant,lock.exe 的可靠性可能是个好点。我已经在尝试锁定 mscoree.dll 但有点卡住了。尝试notepad &gt;&gt;mscoree.dll 但这只会导致“访问被拒绝”...有没有一些简单的方法可以锁定 mscoree.dll 而无需为此编写自己的工具目的?我尝试了Easy File Locker,但它都无法锁定 mscoree.dll。

标签: .net windows-7 .net-4.0 installation


【解决方案1】:

今天我偶然发现了一种方法来实现这一点。尝试使用同一安装程序多次执行安装时,似乎总是需要重新启动。所以只需按照以下步骤操作:

  1. here 获取 .NET v4.0 网络安装程序,
  2. 运行下载的安装程序,
  3. 等待安装完成,
  4. 再次运行下载的安装,
  5. 你可以选择是修复还是移除,选择修复
  6. .NET v4.0 成功修复后,需要重新启动,宾果游戏。

由于锁定 mscoree.dll 可能不需要重新启动,因为 mscoree.dll 的实现现在被拆分为 mscoree.dll 和 mscoreei.dll,它们位于 .NET 版本特定的文件夹中,因此不再需要重新启动。更多信息可以找到here,长话短说:

在 .NET redist 安装过程中,我们发现大量机器重启,通常是因为需要更新正在使用的文件。最常用的文件是 mscoree.dll,它由每个 .NET 应用程序甚至某些服务(例如 MSI)加载。因此,我们进行了 mscoree “拆分”以避免机器重启。通过将 shim 实现移动到特定于版本的文件中,我们能够部署新版本的 mscoreei.dll(例如在 v5.0 .NET 文件夹中,作为 .NET 5.0 安装的一部分),而无需触及机器范围mscoree.dll 文件。

所以 .NET v4.0 修复过程需要替换 v4.0 文件夹中的 mscoreei.dll,所以即使是拆分 mscoree.dll 实现的这个漂亮功能在这里也无济于事,需要重新启动。

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多