与以前的版本相比,VisualStudio2017中使用的MSBuild文件可以大大缩短。正如我们所解释的,例如在博客上
为了使MSBuild格式干净和可读性,删除了许多样板配置。
实际上,当您创建一个新的.NET标准项目时,生成的.csproj文件默认只包含几行代码:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
</PropertyGroup>
</Project>但是,在相同的VS中创建普通的.NET框架项目时,.csproj文件仍将与以前一样长,其中包括几个<PropertyGroup>和<ItemGroup>元素、对某些默认BCL程序集的引用、调试设置的定义等。
通过手工编辑缩短的源代码以实现目标(例如.NET Framework2.0)的表面测试似乎不会导致任何问题(至少不会导致错误消息)。不过,我现在想知道:缩短的MSBuild格式可以用于针对比.NET标准?更早的框架版本吗?
发布于 2017-10-08 16:09:27
是的,您可以使用此语法改进任何受支持的平台。它只为您提供了一些额外的默认值。
然而,一些功能可能缺少类似于传统EF、ASP.NET和WPF的设计师支持。虽然这些项目应该编译,但您可能会遇到一些困难,需要定制msbuild才能使它们工作。
但是,如果您只是在编写库、控制台应用程序/ windows服务,那么您应该没事。
如果您想使用dotnet CLI进行编译,您需要至少针对.NET 4。如果您的目标是更低的版本,例如,net35项目将只使用来自windows或msbuild上的开发人员命令提示符的msbuild编译。
即使对于便携式目标,也有一些解决办法。例如,Netwonsoft.Json最近从具有共享c#源文件的多个csproj和sln文件的复杂设置转移到多目标到多个框架的单一合并csproj文件。
https://stackoverflow.com/questions/46633102
复制相似问题