未知的解决方案项类型:{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23}

12
我试图在Mac Mavericks上使用Monodevelop(3.0.5,启用了MonoMac插件)打开一个项目
我收到以下错误信息:
MonoDevelop.Projects.Formats.MSBuild.UnknownSolutionItemTypeException: Unknown solution item type: {42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.CreateSolutionItem (IProgressMonitor monitor, MonoDevelop.Projects.Formats.MSBuild.MSBuildProject p, System.String fileName, System.String language, System.String typeGuids, System.String itemType, System.Type itemClass) [0x00143] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/e159cf08/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs:369

最相关的部分可能是这个:

未知的解决方案项目类型: {42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

这些UUID可以在我尝试打开的.csproj文件的<ProjectTypeGuids>中找到。

  • FAE04EC0-301F-11D3-BF4B-00C04F79EFBC是C#项目的UUID,
  • 42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23是MonoMac项目的UUID。

我可以正常打开其他的C#项目,所以我猜这是Monomac的问题?

Monodevelop启用了MonoMac插件。我试图从源代码编译MonoMac,但它生成的DLL无法作为插件加载(ZipException)。


MonoDevelop 3非常老旧,我建议您自己编译MonoDevelop4.x。 - knocte
3个回答

25

解决方案是从.csproj完全删除以下行:

<ProjectTypeGuids>{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

该项目随后可以在Monodevelop中正常加载。


刚刚遇到了这个错误,但解决方案仍然有效!谢谢。 - hvaughan3
这对我来说确实有效,但问题并没有得到彻底解决。今天的工作完成后,我保存并退出,然后尝试重新打开它,结果遇到了同样的问题。这个解决方案每次都能解决问题,但不一定是长期的答案。 - Rob Wilkins

0

我在使用MacOS的Visual Studio时遇到了类似的问题。在.csproj上运行git diff,发现文件开头插入了一些杂乱的不可打印Unicode字符:

<U+FEFF><U+FEFF><?xml version="1.0" encoding="utf-8"?>

我通过手动删除并重新输入<?xml部分来解决了这个问题。


0

我在OSX上使用Unity的最新版本内置的Mono Dev时遇到了这个错误。

解决方法:添加管理器 -> 语言绑定 -> 启用C#绑定


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接