3

我有这样配置的许多csproj文件的多平台解决方案:Visual Studio:如何更改编辑器使用的目标框架?

<PropertyGroup> 
    <TargetFrameworks>net452;netstandard1.4</TargetFrameworks>  
</PropertyGroup> 

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.4' ">  
    <PackageReference Include="System.Net.Http" Version="4.3.0"/> 
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> 
</ItemGroup> 

<ItemGroup Condition=" '$(TargetFramework)' == 'net452' "> 
    <Reference Include="System.Net" /> 
    <Reference Include="System.Net.Http" /> 
    <PackageReference Include="Newtonsoft.Json" Version="6.0.8" /> 
</ItemGroup> 

请注意,我没有TargetFramework元素(单数形式)。我只有TargetFrameworks元素(复数形式)。

编辑器假定netstandard1.4和所有#if NET452块变灰,并且没有IntelliSense。

如何告诉Visual Studio编辑器识别特定的目标框架(net452,netstandard1.4),并至少暂时获得IntelliSense?

仅供参考,我使用VS2017 Professional版本15.2(26430.16)。

+0

你没有TargetFramework元素?但是它是什么? net452; netstandard1.4 Alexan

+0

这是复数形式。我没有单数形式。 它看起来像编辑器总是选择.netstandard1.4。所有块#if NET452灰显并且没有智能感知。 – fernacolo

+0

.NET标准的全部重点就是永远不必这样做。所以唯一合乎逻辑的做法是不要做,无论如何这是你迟早会后悔的事情。那么,早点。 –

回答

1

这里的答案:

  • 的Visual Studio 2017年包含了编辑器的顶部3的组合框。在版本15.1或更高版本上,最左边的组合允许选择框架进行编辑。这将根据所选框架更改#if块的语法高亮。
  • 智能感知似乎涵盖了TargetFrameworks上声明的所有项目,即使文本在编辑器中显示为灰色。

总而言之,这只是我的学习曲线。

相关问题