【发布时间】:2022-01-20 03:31:58
【问题描述】:
我在本地克隆的项目使用以下依赖项:
<TargetFrameworks>netstandard2.0;MonoAndroid10.0;Xamarin.iOS10;Xamarin.Mac20;netcoreapp3.0;netcoreapp3.1;net40;net45;net46;net47;net48</TargetFrameworks>
我需要告诉 Visual Studio 忽略那些未安装在我的系统中的框架和项目<->框架依赖项,只构建现有的没有手动删除他们从整个解决方案以及解决方案中的每个项目,无需安装和设置。让我们说如果安装了 netcoreapp3.1,则使用 netcoreapp3.1 构建 .sln 项目。
有没有办法做到这一点?
-
\'build .sln projects with netcoreapp3.1 if it\'s installed.\' 如果同时安装了 netcoreapp33.1 和 netstandard2.0,会发生什么?无论如何,您可能必须更改所有项目,因为有条件地选择框架的逻辑必须在项目中。
-
@stijn,大量的目标框架会导致这些项目依赖项产生大量错误,但 github 作者仍然倾向于尽可能多地实现,特别是如果他们的存储库具有 nuget 包集成。分叉一个会导致错误混乱。
-
我明白,但这并不能回答我的问题;我会改写:您是否只想能够为特定框架构建,无论如何,或者您是否真的希望 msbuild 自动找出已安装/已安装的框架并使用它(如果是的话:如果实际上您安装了多个框架,应该会发生什么)?问题是,第一个问题的答案可能很简单,因为
msbuild my.sln /p:TargetFramework=xxx无论如何都会使用 xxx。第二个的答案可能很复杂。 -
stijn,您对第一个问题的回答回答了我的问题。
标签: visual-studio msbuild csproj cil sln-file