首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net本机工具链无法解析类型System.Collections.Generic.ISet

Net本机工具链无法解析类型System.Collections.Generic.ISet
EN

Stack Overflow用户
提问于 2016-10-05 19:27:38
回答 1查看 90关注 0票数 0

我有两个UWP项目的解决方案。一个是具有共享代码的库,另一个是引用库的常规UWP应用程序。

我已经成功地开发了在调试模式下运行它的应用程序。现在我必须把它打包到商店去,那就是网给我带来麻烦的地方。

在发布模式下编译它时,会得到以下错误

代码语言:javascript
复制
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,所以它是自然引用的。我已经安装了5.2.2版本的Microsoft.NETCore.UniversalWindowsPlatform包,因此我假设它在这里可用。我试着降级到5.1版本,但我得到了同样的错误。如果我安装System.Collections包,情况也是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 18:08:08

所以,我终于成功了。它涉及启动另一个库,并从原来的util (我捕捉到的有问题的类)移动代码。很无聊,因为网络原住民是如此的血腥。

罪犯是:

代码语言:javascript
复制
 private async Task Serialize(ISet<Server> data)

这个小函数使用MemoryStream和DataContractJsonSerializer序列化了preferences集合。

当我把签名改为

代码语言:javascript
复制
 private async Task Serialize(HashSet<Server> data)

很有魅力。

希望这对将来的人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39882148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档