编译为目标 4.6.1 框架的 VB.NET 应用程序无法在只有 4.8 .Net 框架的计算机上成功运行

Posted

技术标签:

【中文标题】编译为目标 4.6.1 框架的 VB.NET 应用程序无法在只有 4.8 .Net 框架的计算机上成功运行【英文标题】:VB.NET application compiled to target 4.6.1 framework does't run successfully on Computer with only 4.8 .Net framewor 【发布时间】:2020-09-23 18:35:06 【问题描述】:

我打算构建简单的 Winform 应用程序,只是为了允许用户自动创建文件并将最后填写的表单存储在文件中以供下次运行。 因此,我对为这个简单的 Winform 应用程序创建安装程序不感兴趣。我希望只将它编译为 .exe 并让它在其他计算机上运行。

我使用 VS2019 社区 开发应用程序,目标为 .net 4.6.1 它不能在只有 .net framework 4.8

的 Windows 10 计算机上运行

我们无法安装框架 4.6.1,因为它说早期版本的 .net 框架已经安装。 p>

我应该使用目标 .net 框架 4.8 重新编译我的应用程序吗?

我不能编译我的应用程序以在任何至少具有 4.6.1 或更新版本的计算机上运行吗? 没有安装程序。

(我不太了解 .net 框架向后兼容真正的意思)

我的应用程序使用:

用于 SetForegroundWindow 函数的 user32.dll 库

创建 .ini 文件

【问题讨论】:

您提供的链接,导致错误 - 404 - 找不到页面。啊,是tailin方括号]导致错误。 对不起。再次简短回答 YES 在 .net4.8 中重新编译您的应用程序。或者,您可以阅读这篇关于 [Side-By-Side execution] docs.microsoft.com/en-us/dotnet/framework/deployment/… 的文章 我确实下载了 .net 4.8 框架 SDK 并选择它作为应用程序目标。你猜怎么着,它仍然不会运行。当我们双击 .exe 时,它​​似乎正在打开,但在显示其 Windows 窗体之前可能会崩溃。不幸的是,出现没有任何消息的崩溃。有没有办法让窗口始终显示任何程序崩溃的消息框? 那么,您是否检查过目标 PC: 1- 针对您的 Project Build 是 32 位还是 64 位? 2-您的项目是否需要管理员权限才能在目标 PC 上运行? 3-您是否安装了正确的 .net framework 4.8,请阅读 [this]docs.microsoft.com/en-us/dotnet/framework/install/… 4-您是否在 EXE 版本中正确打包了依赖项? ...... 仍有许多担忧。在我们讨论 CODE 之前先检查一下。 【参考方案1】:

终于成功了。即使编译为目标 .NET 4.6.1 实际上仍然可以在 .NET 4.8 计算机上运行。 问题是因为我的应用程序使用互操作 COM 接口定位到另一个应用程序,而许可证不足以让用户允许 COM 接口。 当我们最终创建一个纯简单的 windows 窗体,然后在添加每个功能时逐步编译时,我们会注意到这一点。

为这个愚蠢的案例向所有人道歉。我特别向evry1falls 致歉,感谢您花费了您的时间。

我正在考虑更改或删除此问题。因为根本不是问题

实际问题是: 我从一个空白项目开始创建 Windows 窗体应用程序。而且我不知道默认情况下未激活.NET Unhandled Exception。 从 Windows 窗体项目模板创建时,显示未处理的异常消息。

我创建了另一个关于它的问题:Here

【讨论】:

以上是关于编译为目标 4.6.1 框架的 VB.NET 应用程序无法在只有 4.8 .Net 框架的计算机上成功运行的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 VB.NET 代码中 Access SysCmd 失败的原因?

使用 AJAX 从 VB 文件请求 webmethod 信息时出现问题

将 C# .net 4 代码编译为 .net 3.5?

OpenCV for iOS 框架错误“Base.hpp”标头必须编译为 C++

使用第三方库时,它们是否被编译为我的应用程序版本?

将 1.8 Maven 项目更改为编译为 1.16 会产生“无效的目标版本 1.16”