。NETCoreライブラリと次のproject.jsonがあります。
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": { }
},
"scripts": {
"postcompile": [
"dotnet pack --no-build --configuration Release",
"xcopy bin\\Release ..\\..\\lib\\ /Y"
]
}
}
ここで、コンパイル後のスクリプトはnugetパッケージを作成します。これは、 これらの手順 に従って、VSでカスタムフィードとして追加しました。これは、Windowsユニバーサルアプリから参照したいためです。これは、 この質問 によると、他の方法では(まだ)できません。しかし、試してみると、次のメッセージが表示されます。
Package AEther 1.0.0 is not compatible with uap10.0 (UAP,Version=v10.0).
Package AEther 1.0.0 supports: netstandard1.6 (.NETStandard,Version=v1.6)
One or more packages are incompatible with UAP,Version=v10.0.
これは私にとって意味をなさなくなるところです。 this によると、netstandard> = 1.6.0で正常に動作するはずですが、 this Official table は、netstandard <= 1.4.0をターゲットにする必要があると言っていますが、そうではありません。 t何かを変更します。さらに紛らわしいことに、bothバージョンのnetstandard(依存関係とターゲットフレームワーク)をたとえば1.5にダウングレードすると、ファイルに1.6を指定しなくても、まったく同じエラーが発生します。
更新 UWPproject.jsonは次のようになります
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.1"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
誰かが片付けることができますどちらか
[〜#〜] answer [〜#〜]
次のように、UWPアプリにインポートを追加して解決しました。
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.1"
},
"frameworks": {
"uap10.0": { import [ "netstandard1.6" ] }
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
microsoft.NETCore.UniversalWindowsPlatformを5.2.1にアップグレードする必要があります
7月15日に更新
わかりました、これが私の結果です
project.jsonを更新し、「netstandard1.6」をインポートします
{ "dependencies": { "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2", "Test": "1.0.0" }, "frameworks": { "uap10.0": { "imports": [ "netstandard1.6" ] } }, "runtimes": { "win10-arm": {}, "win10-arm-aot": {}, "win10-x86": {}, "win10-x86-aot": {}, "win10-x64": {}, "win10-x64-aot": {} } }
新しいdotnetコアライブラリを作成する
これは私にとって意味をなさなくなるところです。これによると、netstandard> = 1.6.0で正常に動作するはずですが、この公式の表では、netstandard <= 1.4.0をターゲットにする必要があると示されていますが、それでも何も変わりません。さらに紛らわしいことに、両方のバージョンのnetstandard(依存関係とターゲットフレームワーク)をたとえば1.5にダウングレードした場合でも、ファイルに1.6を指定しなくても、まったく同じエラーが発生します。
ユニバーサルWindowsプラットフォームはnetstandard1.4にマップされます -1.6にも1.5にもマップされません。したがって、ライブラリ(AEther
と呼ばれる)には、UWPアプリよりも高い要件があります。
- UWPから.NetCoreライブラリを参照する方法または
リンクされたSO質問 )で述べたように、これはVisualStudioではまだサポートされていません。
私はそれがCLIによるサポートに関連していると推測することができるだけです 未解決の問題 。今日の時点で、Microsoft.NETCore.UniversalWindowsPlatform
メタパッケージのバージョン5.3で修正される予定ですが、以前は5.2.2で修正される予定でした。
- 私の特定のケースでは何が起こっていますか?
NuGetは、パッケージがnetstandard1.6
ターゲットフレームワーク のみをサポートし、uap10.0
はサポートしないことを通知しています。実際、.nupkg
を解凍すると、lib\netstandard1.6
の下にDLLがあります。
dotnet pack は、.nuspec
からproject.json
を自動的に作成するため、適切なフレームワーク(netstandard1.4
など)で修正する必要があります。たとえば、さまざまなフレームワーク用にコンパイルする方が簡単です。たとえば、 。NET Platform Standardと互換性のあるポータブルプロファイル 。