.NET 4.5.1と.NET Standard 1.3の両方をマルチターゲットとするクラスライブラリを構築しようとしています。csprojファイルのマルチターゲティング時にビルドエラーが発生する
しかし<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
、私が構築しようとすると、私はこれらの奇妙なエラーを取得:
TargetFrameworkからTargetFrameworkIdentifierおよび/またはTargetFrameworkVersionを推測することはできません=」the documentationによると、私はこれを行うことができるはずnet451 '。明示的に指定する必要があります。
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コミュニティを使用しています。私はここで何か間違っていますか?
あなたの全体の.csprojを共有することができますを追加するまで、私は同じエラーを得ていましたか? 私は <プロジェクトSDK = "Microsoft.NET.Sdk"> net451を持っている。netstandard1.3 TargetFrameworks> PropertyGroup> そして、それが構築さVS 2017エンタープライズで罰金。 –
"s"タグの末尾を使用する必要があります。 TargetFrameworkではなく、TargetFramework ** s ** – user3107888