У меня есть решение с двумя проектами UWP. Одна из них - это библиотека с общим кодом, а другая - обычное приложение 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)
Я использую Исеть много, так что естественно она ссылается. У меня установлен пакет Microsoft.NETCore.UniversalWindowsPlatform версии 5.2.2, поэтому я предполагаю, что он доступен здесь. Я попытался понизить до версии 5.1, но я получаю ту же ошибку. То же самое, если я устанавливаю пакет System.Collections.
'System.Collections.Generic.ISet' - пространство имен, используемое для приложения silverlight, оно не может использоваться в UWP. Почему вы хотите использовать это? –
Он работает над сборками Debug, поэтому он существует в UWP –
Чтобы подробно описать мой комментарий. Несколько лет назад я был сильно вызван NHibernate, чтобы объявить все как интерфейс, а не явную реализацию. Поэтому я предпочитаю использовать интерфейс как параметр, или свойство, или что-то еще. Я нашел это полезным, и я должен быть не единственным, поскольку абстракции существуют в рамках. –