首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin Studio:对配置文件更改的崩溃

Xamarin Studio:对配置文件更改的崩溃
EN

Stack Overflow用户
提问于 2014-04-29 18:46:19
回答 1查看 234关注 0票数 0

我有一个PCL项目,我试图使用微软提供的PCL版本的System.Net.Http及其依赖项,所有这些都是通过Nuget安装的。这在OSX中非常有用(我能够构建PCL,并在iOS和Android项目中成功地使用它)。

但是,在Windows上,我遇到了此堆栈溢出线程中描述的问题,编译器正在抛出有关未被解决的引用的警告(堆栈溢出问题中的第3项下的警告),如果出现关于Http命名空间不存在的错误(堆栈溢出问题中的#2中的错误),则会失败。

我尝试了在堆栈溢出问题中描述的解决方案,但是如果我将当前配置文件(在Project > Build >General中)从Profile136 (默认)更改为Profile78 (建议的解决方案),Xamarin就会崩溃。配置文件更改确实会保存到我的项目中,如果我试图重新启动Xamarin Studio,就会再次发生崩溃。异常和(部分)堆栈跟踪如下所示。

对于如何解决此异常或堆栈溢出线程中描述的问题的替代解决方案,有任何建议吗?

代码语言:javascript
复制
System.StackOverflowException was unhandled
Message: An unhandled exception of type 'System.StackOverflowException' occurred in ICSharpCode.NRefactory.dll

堆栈跟踪:

代码语言:javascript
复制
> ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.TopLevelTypeNameComparer.GetHashCode(ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName obj) Unknown
  mscorlib.dll!System.Collections.Generic.Dictionary<ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName,ICSharpCode.NRefactory.TypeSystem.IUnresolvedTypeDefinition>.FindEntry(ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName key)  Unknown
  mscorlib.dll!System.Collections.Generic.Dictionary<ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName,ICSharpCode.NRefactory.TypeSystem.IUnresolvedTypeDefinition>.TryGetValue(ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName key, out ICSharpCode.NRefactory.TypeSystem.IUnresolvedTypeDefinition value) Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedAssembly.DefaultResolvedAssembly.GetTypeDefinition(ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName topLevelTypeName)  Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.TypeSystemExtensions.GetTypeDefinition(ICSharpCode.NRefactory.TypeSystem.IAssembly assembly, ICSharpCode.NRefactory.TypeSystem.FullTypeName fullTypeName)  Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.Implementation.GetClassTypeReference.Resolve(ICSharpCode.NRefactory.TypeSystem.ITypeResolveContext context)  Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.Implementation.DefaultUnresolvedAssembly.DefaultResolvedAssembly.GetTypeDefinition(ICSharpCode.NRefactory.TypeSystem.TopLevelTypeName topLevelTypeName)  Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.TypeSystemExtensions.GetTypeDefinition(ICSharpCode.NRefactory.TypeSystem.IAssembly assembly, ICSharpCode.NRefactory.TypeSystem.FullTypeName fullTypeName)  Unknown
  ICSharpCode.NRefactory.dll!ICSharpCode.NRefactory.TypeSystem.Implementation.GetClassTypeReference.Resolve(ICSharpCode.NRefactory.TypeSystem.ITypeResolveContext context)  Unknown
[... : Removed for brevity; repeat the previous three stack frames about 1000 times]
  The maximum number of stack frames supported by Visual Studio has been exceeded.  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-06 04:56:14

多亏了这是在Xamarin论坛上的回复这个Nuget已知问题文档,我终于成功地解决了这个问题。基本步骤:

  1. 删除为HTTPClient和异步支持添加的Nuget包(包括BCL兼容性包)。另外,如果有必要的话,删除它们的引用(Xamarin的Nuget插件没有为我做这件事,在删除包后留下了坏的引用)。
  2. 切换到Profile7,而不是Profile158 (Mac项目模板在Xamarin中的默认设置)。

这给我留下了一个成功构建的PCL项目,Profile7配置文件应该支持Xamarin.iOS和Xamarin.Android (以及WinRT .NET子集和完整的.NET框架)。没有Windows支持(为此我需要Profile78,而且Profile78不包括HttpClient或异步/等待支持),但在我的情况下,这并不是一个破坏程序的机制(我们甚至还没有考虑Windows版本的软件)。

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

https://stackoverflow.com/questions/23372837

复制
相关文章

相似问题

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