C# Winform 安装程序:安装后的 exe 下载 .NET 3.5 Framework

C# Winform Setup: Installed exe downloads .NET 3.5 Framework after setup

我有一个 C# WinForms 应用程序,使用 Visual Studio 2019 设置模板创建设置。该应用程序是为 .NET 4.6.2 创建的,安装项目中的框架先决条件和启动条件也是 4.6.2。这个设置工作了很多年。我使用最新更新在全新 Win10 安装上测试每个更新。

现在有一段时间(~2 或 3 个月),会发生以下情况。安装程序按预期运行并安装应用程序没有任何问题。但是现在,当我在安装完成后启动 exe 时,.NET 3.5 框架会自动下载。这以前从未发生过,作为副作用,我的应用程序在 3.5 下载和安装完成后被锁定在任务管理器中。

由于设置始终相同,只有 exe 发生变化,有时会添加一些 3rd 方 DLL 的更新版本,我认为 Windows 方面一定发生了某些变化(可能 3.5 不存在不再使用最新的 Win10 版本)。

但我的问题是:如何确定哪个组件或 DLL 需要 3.5 框架?

是否有任何免费软件可用于检查我的项目是否存在 3.5 依赖项?

谢谢!

除了查看每个 DLL 的文档外,您还可以使用 System.Reflection 中的一些方法。但是,这里有一种非编程方式来查看 .NET DLL 使用的是哪个版本的 .NET。

注意:SDK 可以在 %ProgramFiles(x86)%\Microsoft SDKs\Windows\ 中找到(例如:C:\Program Files (x86)\Microsoft SDKs\Windows)

我们将使用 ildasm.exe,它可以在以下一个或多个位置找到(前提是 SDK 安装在默认位置):

赢 10:

  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 工具
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 工具
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 工具
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\x64 ...

Win 8.1:

  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 工具
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64

Win 7:

  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 工具
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\x64
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\
  • `%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\x64

运行 ildasm.exe

  • 双击 ildasm.exe 到 运行(或打开 cmd window 并输入 ildasm.exe
  • 单击文件
  • Select 打开
  • 选择您的 DLL 文件(例如:TestDLL35.dll)
  • 双击 MANIFEST 以在新的 window
  • 中打开它

您会看到如下内容:

当您看到:.assembly extern <name>(例如:.assembly extern mscorlib.assembly extern System.Xml.Linq)时,请在大括号内查找 .ver。这是该库的 .NET 版本(例如:3:5:0:0)

资源: