微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET 安装直到重新启动后才被确认,影响依赖项的安装

如何解决.NET 安装直到重新启动后才被确认,影响依赖项的安装

据我所知,我需要安装一个具有 .NET 4.7.2 依赖项(Autodesk Revit,特别是 Personal Accelerator 组件)的程序。如果不重新启动,任何 .NET 安装都是不完整和可验证的。所以我一直无法在新机器上执行单个安装序列。我必须先安装 .NET,重新启动,然后开始批量安装包含 Revit 的 Autodesk 软件。 为了解决这个问题,我想知道是否有办法强制重新加载 .NET 可以这么说?基本上触发重启时发生的任何事情,无需重启。为此,我一直在探索当前版本的 .NET 是如何公开的。 我有这个代码

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | % { Get-ItemProperty -Path Registry::$($_.Name) } | Select Version -Unique

直到重新启动后才显示新版本的 .NET。这看起来很奇怪,因为每个其他安装程序都会在安装时更新注册表,而不需要重新启动。

所以,问题...

1:.NET 安装程序有何不同?为什么它不更新注册表,所以依赖它的后续安装实际上可以确定它在那里。

2:有没有办法在不实际重启的情况下触发这种行为?

3:还有其他方法可以解决这个问题吗?可能是基于 MSI 的安装的一些论点迫使它忽略“丢失”的依赖项?

解决:所以事实证明问题并不像我最初想象的那么简单。 1:手动安装 .NET 时,如果 PowerShell ISE 正在运行,则需要关闭 PowerShell ISE。该消息特别指出,如果 ISE 未关闭,则需要重新启动。因为我正在使用 PowerShell 静安装 .NET,所以强制重启。哪个本身不会有问题,但是...... 2:Autodesk 的 Personal Accelerator 服务安装程序也将启动该服务。使其成为安装程序的子进程,因此 PowerShell 永远不会重新获得控制权,直到该进程关闭。和... 3:该服务需要 .NET 4.7.2,因此当它尚未驻留内存时,因为 PowerShell 仍在运行,因此在脚本处理开始时当前的 .NET 版本是驻留内存的。因此,尝试启动服务会引发需要用户交互的错误

这是 Autodesk 第二次离散启动服务并导致问题,而不仅仅是将服务设置为自动启动。如果有人可以指出解释为什么这是一个坏主意的 Microsoft 文档,我将永远感激,因为 Autodesk 不会仅仅因为我解释它是一个坏主意而更改任何内容

但即使提供了 Microsoft 文档,他们也可能无法修复它,因为这是营销决策,而 ADSK 是当今营销的规则。

我的下一步是查看如果我将脚本作为作业运行和/或在系统上下文中运行它,行为是否会发生变化。交叉手指。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。