有人可以告诉我为什么当我在MonoDevelop的最新版本中创建Monotouch项目时,它的目标是1.0框架而不是3.5,因为我在早期版本中的项目呢?这导致它无法在VS2010中加载,我倾向于在MonoDevelop中构建/测试时使用它进行编码。这是版本信息:
Release ID: 20509002
Git revision: 35a0397615c02f7830d46dfcd31a6c0cb86e9f85
Build date: 2011-04-06 03:37:58+0000
以下是版本之间csproj文件的区别:
旧:
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
新:
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
答案 0 :(得分:3)
v3.5是一个bug; MonoTouch项目从未针对.NET v3.5框架。他们的目标是MonoTouch框架,任意版本为v1.0。
MD 2.6的改进使我们能够以类似于VS 2010的方式处理自定义.NET框架。这意味着不是存储“最接近的”.NET框架,而是在项目完成后将其内部切换到正确的框架。加载后,我们可以使用特定的自定义框架直接处理特定的项目类型。
如果要在VS中加载MT项目,则必须对项目进行更改 - 暂时删除项目风格GUID(尽管一个简单的VS插件可能会使其不必要)。此框架版本修复意味着您还必须将目标框架更改为VS具有的框架。对于MonoTouch 4,我建议使用Silverlight 4或.NET 4,而不是使用.NET 3.5。
最好的解决方案是将VS设置为实际使用MonoTouch框架,这样您就可以获得准确的代码完成和编译。在VS 2010中,现在可以实现。只需将项目的TargetFrameworkIdentifier设置为“MonoTouch”,然后通过将所有MonoTouch框架程序集复制到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoTouch\v1.0
并在RedistList子目录中添加FrameworkList.xml清单来安装自定义框架。
答案 1 :(得分:3)
我创建了一个小型开源项目,使您能够在Visual Studio 2010中构建MonoTouch项目。该项目的自述文件还解释了如何解决目标框架版本的“v1.0”问题。
答案 2 :(得分:0)
由于这是一个Monotouch项目,没有人希望它适用于Visual Studio或Windows。