2016-09-25 16 views
1

私はリフレクションを大いに活用するライブラリを開発しており、.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.jsonpackOptionsに以下を追加することで、私のライブラリは互換作ってみましたdotnet pack -c Releaseによって生成されたファイルには、実際には予想される場所にMyLibrary.rd.xmlというファイルが含まれています。

しかし、.NET NativeはUWPアプリケーションでそのパッケージ(プロジェクト参照ではなくNuGet)を使用すると.rd.xmlファイルを取得しません。メタデータの欠落があるとアプリがクラッシュします。

私には何が欠けていますか?

+1

ライブラリリソースとしてそれを含める場合、それはまだそれを取りに失敗していますか? 「コード変更はありません」を参照してください。https://blogs.msdn.microsoft.com/dotnet/2014/05/23/net-native-deep-dive-making-your-library-great/ –

+0

@MattWhildenありがとう!私はproject.jsonの 'Embedded Resource'に相当するものを使っていました。私の答えを見てください。私が参照しているそのブログ記事が古くなっているようです。 –

+0

パーフェクト。あなたが元気に戻ってうれしいです。 –

答えて

1

Matt Whildenのコメントは私を正しい道に導いた。 packOptions/files、ない.xprojベースのプロジェクトは、ファイルのプロパティを持っていないが、Embedded Resourceの正しい同等のは、フレームワークのセクションでbuildOptions/embed次のとおりです。

"uap10.0": { 
    "buildOptions": { 
    "embed": { 
     "include": "Properties/MyLibrary.rd.xml" 
    } 
    } 
} 
関連する問題