我正在開發一個大量使用反射的庫,並且同時針對.NET Core(netstandard1.3
)和完整.NET(net451
)。如何在NuGet包中正確包含rd.xml文件?
,使之與.NET本地(即UWP發佈版本)的工作,它需要一個rd.xml文件,它看起來像這樣:
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Library Name="MyLibrary">
<!-- bunch of directives here -->
</Library>
</Directives>
我知道這些指令的工作,因爲他們插入到Application.rd.xml
使用該庫的UWP應用程序的文件工作正常,但該應用程序因爲缺少元數據而崩潰。
使用this blog post,我試圖使我的圖書館兼容加入uap10.0
到支持的框架,使用相同的依賴關係netstandard1.3
+ System.Runtime
,然後添加以下到我的project.json
的packOptions
:
"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
文件;該應用程序崩潰,缺少元數據錯誤。
我錯過了什麼?
如果你把它作爲一個資源庫它仍然無法把它撿起來?請參閱「無代碼更改」:https://blogs.msdn.microsoft.com/dotnet/2014/05/23/net-native-deep-dive-making-your-library-great/ –
@MattWhilden謝謝!我在project.json中使用了相當於「嵌入式資源」的工具,並且工作正常(請參閱我的答案)。看起來像我引用的博文是過時的。 –
完美。很高興你回到正軌。 –