【发布时间】:2016-09-25 12:48:24
【问题描述】:
我正在开发一个大量使用反射的库,并针对 .NET Core (netstandard1.3) 和完整的 .NET (net451)。
要使其与 .NET Native(即 UWP Release 版本)一起使用,它需要一个 rd.xml 文件,如下所示:
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Library Name="MyLibrary">
<!-- bunch of directives here -->
</Library>
</Directives>
我知道这些指令有效,因为使用库将它们插入到 UWP 应用的 Application.rd.xml 文件中可以正常工作,但应用会因为缺少元数据而崩溃。
使用this blog post,我尝试通过将uap10.0 添加到支持的框架来使我的库兼容,使用与netstandard1.3 + System.Runtime 相同的依赖项,然后将以下内容添加到我的project.json 的@987654331 @:
"files": {
"include": "Properties/MyLibrary.rd.xml",
"mappings": {
"lib/uap10.0/MyLibrary/Properties/MyLibrary.rd.xml": "Properties/MyLibrary.rd.xml"
}
}
dotnet pack -c Release 生成的包确实在预期的位置包含MyLibrary.rd.xml 文件。
但是,当我在 UWP 应用程序中使用该包(来自 NuGet,而不是作为项目参考)时,.NET Native 不会获取 .rd.xml 文件;应用因缺少元数据错误而崩溃。
我错过了什么?
【问题讨论】:
-
如果您将它作为图书馆资源包含,它仍然无法获取它吗?请参阅此处的“无代码更改”:blogs.msdn.microsoft.com/dotnet/2014/05/23/…
-
@MattWhilden 谢谢!我在 project.json 中使用了等效的“嵌入式资源”,它可以工作(请参阅我的答案)。看起来我引用的那篇博文已经过时了。
-
完美。很高兴你回到正轨。
标签: .net nuget .net-core .net-native