UWP 应用程序和 .NET Core RC2:无法引用 netstandard1.4 包

Posted

技术标签:

【中文标题】UWP 应用程序和 .NET Core RC2:无法引用 netstandard1.4 包【英文标题】:UWP application and .NET Core RC2: cannot reference netstandard1.4 packages 【发布时间】:2016-09-18 19:30:09 【问题描述】:

我有一个场景,我使用共享代码库运行 UWP 客户端应用程序、UWP IOT 应用程序和 .NET Core 应用程序。 在 .NET Core RC1 中,我构建了一个类库(包)并使用“dotnet5.4”作为该库的基础框架。

使用“生成构建输出”,我可以从 .NET Core 应用程序(控制台)引用创建的 nuget 包,并使用解决方法(从 %local%.dnx -> %local%.nuget 复制包)UWP 应用程序也能够引用和使用该软件包。

现在在 RC2 中,事情发生了一些变化,我再次能够使用升级后的库(项目文件中升级的工具,对 project.json 的更改,netstandard1.4(因为根据this,1.5 不适用于 UAP10) )) 完美使用 .NET Core 控制台应用程序。

对于 UWP,我无法添加库,因为我有几十个臭名昭著

"[...] provides a compile-time reference assembly [...] but there is no run-time assembly compatible with [...]"

错误。

环顾一番后,我试图隔离问题,发现我什至无法添加对 System.IO.FileSystem.Watcher 的引用,原因是:

System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm-aot.
Some packages are not compatible with UAP,Version=v10.0 (win10-x64-aot).
System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64.
Some packages are not compatible with UAP,Version=v10.0 (win10-arm).
Some packages are not compatible with UAP,Version=v10.0 (win10-x86-aot).
System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86.
System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86-aot.
System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm.
Some packages are not compatible with UAP,Version=v10.0 (win10-x64).
System.IO.FileSystem.Watcher 4.0.0-rc2-24027 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64-aot.
Some packages are not compatible with UAP,Version=v10.0 (win10-x86).
Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot).

我有一个最小的解决方案来重现to OneDrive 上传的问题。

除了 project.json 中的依赖项之外,我没有对空白 UWP 模板进行任何更改:

"dependencies":

    "Microsoft.ApplicationInsights": "2.1.0-beta4",
    "Microsoft.ApplicationInsights.PersistenceChannel": "2.0.0-beta3",
    "Microsoft.ApplicationInsights.WindowsApps": "1.1.1",
    "Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
    "NETStandard.Library": "1.5.0-rc2-24027",

    "System.IO.FileSystem.Watcher": "4.0.0-rc2-24027"
,

注意:我已将 Microsoft.NETCore.UniversalWindowsPlatform 更新为最新版本。我添加了 NETStandard.Library 和 Microsoft.NETCore.Platforms。

非常感谢您的帮助! 提前致谢 -西蒙

【问题讨论】:

【参考方案1】:

UWP 目前不支持 System.IO.FileSystem.Watcher。现代 SDK 没有公开我们实现它所需的底层 Windows API (ReadDirectoryChanges)。

-Eric,.NET 团队

【讨论】:

以上是关于UWP 应用程序和 .NET Core RC2:无法引用 netstandard1.4 包的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net core rc2 中指定代理

ASP.NET Core RC2 IIS 在选项请求上返回 502

ASP.NET Core RC2 中的依赖注入失败

Service Fabric 中的 .NET Core RC2

在 .NET Core RC2 中构建 .exe 文件

win10与ubuntu下演示运行.net core rc2 1.0.0.3002702程序