2016-12-05 92 views
2

我有一段艱難的時間計算出如何在Visual Studio 2017項目中設置交叉定位,但我一直無法找到任何示例。使用NuGet 4.0和Visual Studio 2017的交叉定位框架

我開始與.NET標準1.5項目,並保持簡單我只是想添加.NET標準1.6。如果我正確理解了文檔,我現在應該可以在csproj文件中完成所有這些工作,而不必混淆project.json或nuspec文件。

我已經嘗試了所有這些值,但沒有似乎工作:

<TargetFrameworks>netstandard15;netstandard16</TargetFrameworks> 
<TargetFrameworks>netstandard1.5;netstandard1.6</TargetFrameworks> 
<TargetFrameworks>.NETStandard,Version=v1.5;.NETStandard,Version=v1.6</TargetFrameworks> 

這是文件的唯一來源我能找到的功能,它不包含一個完整的例子:

https://docs.nuget.org/ndocs/schema/msbuild-targets

https://docs.nuget.org/ndocs/create-packages/supporting-multiple-target-frameworks

+1

沒有人討論過關於MSBuild for .NET Core項目的多重定位,但恕我直言。除非Microsoft提供更多信息,否則您必須立即針對單個平臺。你提到的文檔只是NuGet,我不認爲它們是相關的。 –

+0

啊!是的,這是完全合理的。我不知道它是如何卡在我的腦海中,MSBuild會識別NuGet使用的標籤。謝謝你禮貌地回答這樣一個愚蠢的問題。 –

+0

嗯,我相信你已經提出了一個很好的問題,但並沒有在正確的時間。微軟剛剛將MSBuild支持帶回到了.NET Core,併發布了預覽版VS2017。所以目前還不知道'project.json'中的多個框架應該如何轉換爲MSBuild語法。時間會證明。 –

回答

2

我收到這對最新的Visual Studio 2017年的工作在本POS描述t https://blogs.msdn.microsoft.com/dotnet/2016/10/19/net-core-tooling-in-visual-studio-15/這是正確的做法。我的csproj文件看起來像這樣:

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

Visual Studio 2017 RC release notes也有此列爲一項功能(在.NET Core和碼頭工人):在一個項目

  • 跨目標多目標框架。

我在開始時犯的錯誤是,當我第一次創建項目時,該屬性名爲TargetFramework,我試圖添加多個目標,而VS根本就不喜歡那個。它只是崩潰然後...所以一定要重命名爲TargetFrameworks,它應該工作。