【问题标题】:Visual Studio target framework not changing to 4.0Visual Studio 目标框架未更改为 4.0
【发布时间】:2020-01-02 16:15:00
【问题描述】:

我正在编写一个 Windows 窗体程序,它没有使用 .net 框架 4.5-4.7 中的任何新技术,但不幸的是,我开始项目时将 .net 框架设置为 4.6.2。 (因为一开始公司告诉我他们只想在win 7/8.1/10上使用它,后来他们改变了主意) 我知道 Windows XP 已经过时,但我也必须在 XP 机器上运行这个程序。

我已经尝试将目标框架设置为 .NET 4.0,但是当我在 XP 机器上尝试使用 .msi 安装程序时,它会抛出一个错误,即我无法运行依赖于 .net 4.6.2 的程序,甚至之前它开始安装过程。

我能否将整个项目“转换”为 .net 4.0,或者我必须将所有按钮、文本框、数千行代码等复制到仅使用 .net 4.0 的新项目中? 我正在使用 Visual Studio 2017。

【问题讨论】:

  • 除非被告知,否则安装程序不会知道正在使用的框架。您需要关注 MSI 正在做什么,而不是您如何编译应用程序。您没有提到您使用什么技术来创建您的 MSI,但安装日志记录可能会给您一些线索,通常框架版本的启动条件可能需要调整。要创建安装日志,请使用类似于以下内容的命令行: msiexec /i /l*v
  • 嗯,这可能是个问题!我做了你的提示,但我真的无法使用我的 Windows 10 机器识别此命令行创建的日志文件中的任何错误。我把文件上传到了Dropbox,如果你能看一下,我会很感激你的时间!:dropbox.com/s/7glqt2ag5d0eylt/setupLog.log?dl=0

标签: c# .net winforms frameworks


【解决方案1】:

查看您分享的日志,我可以看到 DIRCA_CheckFX,所以我猜测安装项目是一个 vdproj,它已被弃用,取而代之的是 WiX 之类的框架。

CheckFX 步骤是一个启动条件,您应该能够通过打开项目并找到启动条件来删除/操作它:

查看 -> 编辑器 -> 启动条件

【讨论】:

  • 哇,你解决了!我现在感觉很笨,在照顾了一整天之后......非常感谢!