私はリフレクションを大いに活用するライブラリを開発しており、.NET Core(netstandard1.3
)と完全な.NET(net451
)の両方を対象としています。rd.xmlファイルをNuGetパッケージに正しく組み込む方法は?
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Library Name="MyLibrary">
<!-- bunch of directives here -->
</Library>
</Directives>
が、私はApplication.rd.xml
にそれらを挿入するため、これらのディレクティブは仕事を知っている:
が、それは、.NETネイティブ(すなわちUWPリリースビルド)で動作させるために、それはこのようになりますrd.xmlファイルを、必要としますライブラリを使用しているUWPアプリのファイルは正常に動作しますが、それ以外の場合はメタデータがないためにアプリケーションがクラッシュします。
"files": {
"include": "Properties/MyLibrary.rd.xml",
"mappings": {
"lib/uap10.0/MyLibrary/Properties/MyLibrary.rd.xml": "Properties/MyLibrary.rd.xml"
}
}
パッケージ:this blog postを使用して
、私はその後、netstandard1.3
+ System.Runtime
と同じ依存関係を使用して、サポートフレームワークにuap10.0
を追加私のproject.json
のpackOptions
に以下を追加することで、私のライブラリは互換作ってみましたdotnet pack -c Release
によって生成されたファイルには、実際には予想される場所にMyLibrary.rd.xml
というファイルが含まれています。
しかし、.NET NativeはUWPアプリケーションでそのパッケージ(プロジェクト参照ではなくNuGet)を使用すると.rd.xml
ファイルを取得しません。メタデータの欠落があるとアプリがクラッシュします。
私には何が欠けていますか?
ライブラリリソースとしてそれを含める場合、それはまだそれを取りに失敗していますか? 「コード変更はありません」を参照してください。https://blogs.msdn.microsoft.com/dotnet/2014/05/23/net-native-deep-dive-making-your-library-great/ –
@MattWhildenありがとう!私はproject.jsonの 'Embedded Resource'に相当するものを使っていました。私の答えを見てください。私が参照しているそのブログ記事が古くなっているようです。 –
パーフェクト。あなたが元気に戻ってうれしいです。 –