如何在安装netcore 2.x SDK的基础上控制TargetFramework
问题描述:
在“我想与人分享样本”的情况下,我宁愿不告诉人们“你需要安装netcore 2.x SDK才能使用它样品”。只有桌面.net的用户应该仍然可以打开解决方案并运行解决方案。如何在安装netcore 2.x SDK的基础上控制TargetFramework
但是,如果一个项目有这个
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
,并没有netcoreapp2.0
安装,他们将收到以下错误
目前.NET SDK不支持针对.NET 2.0的核心。要么以.NET Core x或更低版本为目标,要么使用支持.NET Core 2.0的.NET SDK版本。
答
为广大见https://github.com/dotnet/cli/issues/7051问解决这个问题。目前没有防弹解决方案。
一个现在可以工作的是检查'$(UsingMicrosoftNETSdk)' == 'true'
。该属性已添加到2.0 SDK中。所以如果它存在,那就意味着你使用的是2.0 SDK。如果没有,那么它必须是1.x.
与您当前的黑客的问题是,当版本3有一天到来时,它会中断。
答
我现在破解是要做到这一点
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Condition=" $(BundledNETCoreAppPackageVersion.StartsWith('2.')) ">
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition=" ! $(BundledNETCoreAppPackageVersion.StartsWith('2.'))">
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
这似乎是工作,但我希望有一个不太黑客/支持更多的替代
感谢您在这里分享您的解决方案,您可以将其标记为答案,直到您获得更好的答案,o它可以帮助其他社区成员获得相同的问题。 –