我尝试对此进行一些搜索,但由于我不确定"什么",所以我没有走得太远,所以它很可能是我找不到的另一个问题的副本。
我正在查看一段用于小型测试应用程序的代码,并注意到属性中的"目标框架"下拉列表被禁用。 编辑 .csproj 文件向我显示以下内容:
<TargetFrameworks>net451;netcoreapp1.0;netcoreapp2.0</TargetFrameworks>
在文件下方看,我看到这个:
<ItemGroup Condition="'$(TargetFramework)' != 'netstandard2.0'">
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.0.3" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net451' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
有人可以指出我正确的方向来了解这是什么,它是如何工作的以及它的用例是什么吗?
此外,查看此指令以进行任务
#if NET451
return Task.FromResult(true);
#else
return Task.CompletedTask;
#endif
我注意到 NET451 已启用,我试图找出为什么它是它选择的而不是 netstandard2.0? 通常我只能选择目标框架,但正如我提到的,下拉列表被禁用,所以我试图了解它是如何选择它的。
您可以从TargetFrameworks
中将TargetFramework
视为当前目标。MSBuild 将一次生成每个目标。
可悲的是,仍然没有用于TargetFrameworks
的 UI .
选择哪个在 Visual Studio 中处于活动状态的方式位于编辑器窗口顶部的左上角组合框中。