我在创建一个以.NET Framework 4.8为目标的项目时遇到了一些问题。我正在使用升级至16.2.5版本的Visual Studio 2019。我还安装了.NET Framework 4.8开发人员包。从Visual Studio安装程序中,我没有看到任何启用4.8开发工具(类似于4.7)的选项。
我在创建一个以.NET Framework 4.8为目标的项目时遇到了一些问题。我正在使用升级至16.2.5版本的Visual Studio 2019。我还安装了.NET Framework 4.8开发人员包。从Visual Studio安装程序中,我没有看到任何启用4.8开发工具(类似于4.7)的选项。
我最近在使用Visual Studio 2019社区版时遇到了一个类似的问题:只显示了.Net Core版本。
我手动编辑了.csproj
文件。我更改了带有TargetFramework
属性的那一行:
<TargetFramework>net48</TargetFramework>
奇怪的是,现在所有其他版本也都显示出来了。
我想把我的问题发布出来,因为我在VS2019 Winforms项目中也遇到了这个问题,除了 .Net 5 和 Core 3.1 之外,无法针对任何其他 .net framework。原来有两种Winforms,即Winforms应用程序和Winforms应用程序(.Net Framework)。前者无法针对其他 .net框架进行目标定位,而后者可以。唉!这些简单的东西并不明显。
这个Visual Studio主题包含了我所寻找的所有答案。.NET Framework 4.8开发人员包包括SDK和定位包。安装并重新启动Visual Studio后,我现在可以在Visual Studio项目的定位选项中看到.NET Framework 4.8。您不需要执行任何Visual Studio安装程序步骤。
如上面的主题所提到的,从16.3开始(目前列在16.3预览2下),.NET Framework 4.8将被包含在Visual Studio安装过程中。
无法
看到 .NET Framework 4.8。 - Paul如果在VS 2019社区版中遇到此问题,这里有一个解决方法。在我的情况下,问题出在选择模板时的混淆。 .NET Framework的模板在括号中且位于列表底部(在我的情况下根本不显示,直到我点击搜索框旁边的“清除”链接)。
例如:
Console App (.NET Framework) ASP.NET Web Application (.NET Framework) Class Library (.NET Framework) 等等
我通过VS中的目标框架安装了4.8框架,但在项目属性下无法像我预期的那样进行选择。
最后我不得不重新创建我的VS项目。在使用框架c#控制台搜索参数创建项目时,在模板中找到了4.8框架。然后我将文件复制到新的项目文件夹中,并通过解决方案工具将它们添加为现有项。
C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets
C:\程序文件\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets
<!--
<GetReferenceAssemblyPaths
Condition="'$(TargetFrameworkMoniker)' != '' and ('$(_TargetFrameworkDirectories)' == '' or '$(_FullFrameworkReferenceAssemblyPaths)' == '')"
TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
RootPath="$(TargetFrameworkRootPath)"
TargetFrameworkFallbackSearchPaths="$(TargetFrameworkFallbackSearchPaths)"
BypassFrameworkInstallChecks="$(BypassFrameworkInstallChecks)"
>
<Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
<Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName" Condition="'$(TargetFrameworkMonikerDisplayName)' == ''"/>
</GetReferenceAssemblyPaths>
-->
即使使用较低版本的Visual Studio(我的是Win 2008 R2下的15.2版本),您也可以做到!
就这样!
1. 选择带有XMAL的WPF应用程序(.NET Framework)
在Visual Studio 2022上, 我选择了带有XMAL的WPF应用程序(.NET Framework),可以支持.NET Framework。
.csproj
文件都包含<TargetFramework>
。我的其中一个项目只有<TargetFrameworkVersion>
。 - RhinoDevel