2016-10-05 12 views
0

私は2つのUWPプロジェクトを持つソリューションを持っています。 1つは共有されたコードを持つライブラリで、もう1つはライブラリを参照する通常のUWPアプリケーションです。ネイティブのネイティブツールチェーンは型を解決できませんSystem.Collections.Generic.ISet

私は、デバッグモードで実行しているアプリを正常に開発しました。今私はストアにそれをパックする必要があります、それはNETが私にトラブルを与えているところです。

私はリリースモードでコンパイルすると、私は次のエラー

C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x64\ilc\IlcInternals.targets(936,5): error : 
System.TypeLoadException: Could not resolve type 'System.Collections.Generic.ISet`1'. 
in System.TypeNameParser.ResolveType(Assembly assembly, String[] names, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) 
in System.TypeNameParser.ConstructType(Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) 
in System.TypeNameParser.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) 
in System.Type.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError) 
in System.Reflection.Adds.TypeNameParser.ParseTypeName(ITypeUniverse universe, Module module, String input, Boolean throwOnError) 
in Microsoft.MetadataReader.MetadataExtensionsPolicy20.TryTypeForwardResolution(MetadataOnlyAssembly assembly, String fullname, Boolean ignoreCase) 
in Microsoft.MetadataReader.MetadataOnlyAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) 
in Microsoft.MetadataReader.MetadataOnlyAssembly.GetType(String name, Boolean throwOnError) 
in SerializationAssemblyGenerator.Program.TraverseTypes(GeneratorSettings settings, Dictionary`2& dataContracts, Dictionary`2& jsonDataContracts, List`1& xmlSerializerTypes) 
in SerializationAssemblyGenerator.Program.Main(String[] args) 

を取得し、それが参照されている自然なことですので、私はISETをたくさん使用しています。 Microsoft.NETCore.UniversalWindowsPlatformパッケージのバージョン5.2.2がインストールされているので、ここで使用できると仮定します。バージョン5.1にダウングレードしようとしましたが、同じエラーが発生します。 System.Collectionsパッケージをインストールした場合と同じです。

+0

'System.Collections.Generic.ISet'はSilverlightアプリケーションに使用される名前空間です.UWPでは使用できません。なぜあなたはこれを使いたいのですか? –

+0

これはUWPに存在するようにデバッグビルドで動作します –

+0

私のコメントを詳しく説明します。数年前、NHibernateは、明示的な実装ではなく、すべてをインタフェースとして宣言するように強く誘導されました。ですから、私はパラメータやプロパティなどのインターフェースを必要とする傾向があります。私はそれが有用であることを発見しました。抽象化がフレームワークに存在するので、私は唯一のものでなくてはなりません。 –

答えて

0

私はついにそれを作った。それは別のライブラリを開始し、元のコードを動かすことに関係していましたが、私は問題のあるクラスを見つけました。非常に退屈なネットネイティブはsoooooo slooooowです。

そして犯人だった:

private async Task Serialize(ISet<Server> data) 

この小さな機能はMemoryStreamをとDataContractJsonSerializerを使用して、好みのコレクションを連載しました。私は

private async Task Serialize(HashSet<Server> data) 

に署名を変更

は魅力のように働きました。

これは将来的に誰かに役立つことを願っています。

関連する問題