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上聲明的所有項目,即使文本在編輯器中顯示爲灰色。

總而言之,這只是我的學習曲線。

相關問題