.net 如何在NuGet包中正确包含rd.xml文件?
我正在开发一个大量使用反射的库,目标是.NET核心(.net 如何在NuGet包中正确包含rd.xml文件?,.net,nuget,.net-core,.net-native,.net,Nuget,.net Core,.net Native,我正在开发一个大量使用反射的库,目标是.NET核心(netstandard1.3)和完整的.NET(net451) 要使其与.NET Native(即UWP发布版本)一起工作,它需要一个rd.xml文件,如下所示: <Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata"> <Library Name="MyLibrary"> <!-- bunch of directi
netstandard1.3
)和完整的.NET(net451
)
要使其与.NET Native(即UWP发布版本)一起工作,它需要一个rd.xml文件,如下所示:
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Library Name="MyLibrary">
<!-- bunch of directives here -->
</Library>
</Directives>
dotnetpack-c发行版
生成的包确实在预期的位置包含了MyLibrary.rd.xml
文件
但是,当我在UWP应用程序中使用该包时,.NET Native没有拾取.rd.xml
文件(来自NuGet,不是作为项目参考);应用程序因缺少元数据错误而崩溃
我错过了什么?马特·惠尔登的评论让我走上了正确的道路。基于xproj的项目没有文件属性,但是
嵌入资源的正确等价物是框架部分中的buildOptions/embed
,而不是packOptions/files
:
"uap10.0": {
"buildOptions": {
"embed": {
"include": "Properties/MyLibrary.rd.xml"
}
}
}
如果您将其作为库资源包含,它是否仍然无法获取它?请参见此处的“无代码更改:@mattwilden谢谢!我在project.json中使用了相当于“嵌入式资源”的方法,它可以工作(参见我的答案)。看起来我引用的那篇博文已经过时了。太好了。很高兴你重回正轨。
"uap10.0": {
"buildOptions": {
"embed": {
"include": "Properties/MyLibrary.rd.xml"
}
}
}