MSBuild 忽略 .sln 中每个 .csproj 的缺失 <TargetFrameworks>?

MSBuild Ignore absent <TargetFrameworks> for every .csproj in .sln?

我在本地克隆的项目使用了以下依赖项:

<TargetFrameworks>netstandard2.0;MonoAndroid10.0;Xamarin.iOS10;Xamarin.Mac20;netcoreapp3.0;netcoreapp3.1;net40;net45;net46;net47;net48</TargetFrameworks>

我需要告诉 Visual Studio 忽略那些框架和项目<->我的系统中没有安装的框架依赖项,只构建现有的 而无需 手动从整个解决方案和解决方案中的每个项目中删除它们,而不安装和设置它们。假设 使用 netcoreapp3.1 构建 .sln 项目(如果已安装)。

有办法吗?

参见documentation on TargetFrameworks:指定TargetFramework(单数)时它会被忽略,因此您可以使用

选择框架构建
msbuild my.sln /p:TargetFramework=netcoreapp3.1

(有争议的是,仅仅在项目文件中指定一堆硬编码的可能框架并不是超级用户友好的,如果作者以某种方式有条件地这样做会更好)