Dot-Net

在 csproj 文件中進行多目標時生成錯誤

  • March 28, 2017

我正在嘗試建構一個同時針對 .NET 4.5.1 和 .NET Standard 1.3 的類庫。根據文件,我應該能夠做到這一點:

<PropertyGroup>
 <TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>

但是,當我嘗試建構時,我得到了這些奇怪的錯誤:

無法從 TargetFramework=‘net451’ 推斷 TargetFrameworkIdentifier 和/或 TargetFrameworkVersion。它們必須明確指定。

未找到MSB3645 .NET Framework v3.5 Service Pack 1。為了以“.NETFramework,Version=v1.3”為目標,必須安裝 .NET Framework v3.5 Service Pack 1 或更高版本。

MSB3644 未找到框架“.NETFramework,Version=v1.3”的參考程序集。要解決此問題,請為此框架版本安裝 SDK 或 Targeting Pack,或者將您的應用程序重新定位到已安裝 SDK 或 Targeting Pack 的框架版本。請注意,程序集將從全域程序集記憶體 (GAC) 中解析,並將用於代替引用程序集。因此,您的程序集可能無法正確定位於您想要的框架。

如果我手動指定目標框架標識符,它建構得很好:

<PropertyGroup>
 <TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net451'">
 <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
 <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
</PropertyGroup>

我正在使用 Visual Studio 2017 社區。我在這裡做錯了嗎?

你確定寫了嗎

<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>

並不是

<TargetFramework>net451;netstandard1.3</TargetFramework>

?

在添加缺失的內容之前,我遇到了同樣的錯誤s

引用自:https://stackoverflow.com/questions/43072097