MonoDevelop 2.6 Beta 1(2.5.90)针对Csproj文件中的.NET 1.0 Framework?

时间:2011-04-09 19:09:47

标签: mono xamarin.ios monodevelop

有人可以告诉我为什么当我在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>

3 个答案:

答案 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”问题。

该项目位于https://github.com/follesoe/VSMonoTouch

答案 2 :(得分:0)

由于这是一个Monotouch项目,没有人希望它适用于Visual Studio或Windows。