TargetFrameworks 不适用于 VS 2019 16.6.2
TargetFrameworks does not work on VS 2019 16.6.2
我正在尝试同时为 net35 和 net40 编译一个二进制文件,类似于 Newtonsoft.Json.csproj
所以我用 VS 2019 16.6.2
创建了一个 .NET Console project
。然后我关闭了VS,手动编辑了csproj文件,
- 已将
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
替换为 <TargetFrameworks>net35;net40</TargetFrameworks>
- 已将
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
替换为 <Project Sdk="Microsoft.NET.Sdk">
然后我重新打开Visual Studio并重新编译解决方案,它仍然生成test -> C:\Users\Administrator\Source\Repos\test\test\bin\Debug\test.exe
我期待两个单独的文件夹,又名 net35\test.exe
和 net40\test.exe
我错过了什么?
TargetFrameworks does not work on VS 2019 16.6.2
实际上,这不是 Visual Studio.
的问题
原因是你先创建了old-sdk风格的项目(Net Framework项目),old-sdk风格无法获取新sdk的outputpath (你想要的是新sdk的输出路径-----Net Core或Net Standard)如果你迁移old-sdk 样式转换成 new-sdk 样式,你可能会遇到一些麻烦。我们也不建议您这样做。
因此对于您的情况,您可以先在Visual Studio中创建一个Net Core控制台应用程序 而不是 Net Framework 项目。
建议
我建议你可以在visual studio中创建一个Net Core Console项目或者通过dotnet.exe
使用dotnet new console
,然后你可以修改新项目,使用这个:
<TargetFrameworks>net35;net40</TargetFrameworks>
然后你可以在输出路径中看到你期望的内容。
我正在尝试同时为 net35 和 net40 编译一个二进制文件,类似于 Newtonsoft.Json.csproj
所以我用 VS 2019 16.6.2
创建了一个 .NET Console project
。然后我关闭了VS,手动编辑了csproj文件,
- 已将
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
替换为<TargetFrameworks>net35;net40</TargetFrameworks>
- 已将
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
替换为<Project Sdk="Microsoft.NET.Sdk">
然后我重新打开Visual Studio并重新编译解决方案,它仍然生成test -> C:\Users\Administrator\Source\Repos\test\test\bin\Debug\test.exe
我期待两个单独的文件夹,又名 net35\test.exe
和 net40\test.exe
我错过了什么?
TargetFrameworks does not work on VS 2019 16.6.2
实际上,这不是 Visual Studio.
的问题原因是你先创建了old-sdk风格的项目(Net Framework项目),old-sdk风格无法获取新sdk的outputpath (你想要的是新sdk的输出路径-----Net Core或Net Standard)如果你迁移old-sdk 样式转换成 new-sdk 样式,你可能会遇到一些麻烦。我们也不建议您这样做。
因此对于您的情况,您可以先在Visual Studio中创建一个Net Core控制台应用程序 而不是 Net Framework 项目。
建议
我建议你可以在visual studio中创建一个Net Core Console项目或者通过dotnet.exe
使用dotnet new console
,然后你可以修改新项目,使用这个:
<TargetFrameworks>net35;net40</TargetFrameworks>
然后你可以在输出路径中看到你期望的内容。