让 VS 编译 MonoTouch 项目源文件不再出错

简介:

使用 MonoTouch 做 iOS 开发, 由于 MonoDevelop 和 VS 2010 相比, 功能差的太多, 通常会相应的建立两个项目, 一个是 MonoDevelop 项目, 在 OSX 下使用, 一个是 VS 项目, 在 Windows 下使用, 在 Windows 系统下进行编码, 之后再在 OSX 下进行调试。 不过, 默认的 VS 项目在添加 MonoTouch 项目的 CS 源文件之后, 经常编译出错, 而且如果安装了 Resharper 之类的插件之话, 也会得到一大堆错误信息, 令人感觉非常恶心。 经过一番研究发现是因为 VS 不能引用 MonoTouch 的几个核心 dll 文件导致的, 包括 mscorlib.dll , System.dll , System.Core.dll 等, 找到原因之后, 对应的解决方法就有了。

新建项目, .Net Framework 选择 4.0 或以上, 项目类型选择类库项目, 项目名称为 MonoTouchLib , 如下图所示:

clip_image001

编辑项目属性, 选择 build 选项卡, Configuration 选择 All Configurations , 点击右下角的 advanced 按钮, 在弹出的 Advanced Build Setting 对话框中勾选 Do not reference mscorlib.dll , 如下图所示:

clip_image002

右击 MonoTouchLib 项目, 在上下文菜单选择 Unload Project , 再次右击, 选择 Edit MonoTouchLib.csproj , 按照下图对项目文件进行修改:

clip_image003

修改好之后, 保存并重新加载项目即可。 把这个项目导出为项目模板, 以后就不用每次都重复设置了。

如果再要引用其它的 MonoTouch 组件, 可以尝试直接添加引用, 如果发现引用路径不正确的话, 还按照这个方法进行修改。

这样修改过后的项目, 不仅可以顺利编译 MonoTouch 项目的源文件, Resharper 也不再提示错误。

张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。

本博客已经迁移到 GitHub , 围观地址: http://beginor.github.io/

本文转自张志敏博客园博客,原文链接:http://www.cnblogs.com/beginor/archive/2012/04/25/2469545.html ,如需转载请自行联系原作者
相关文章
源文件与模块生成时的文件不同,是否希望调试器使用它?如何解决
源文件与模块生成时的文件不同,是否希望调试器使用它?如何解决
|
2月前
|
Ubuntu JavaScript Java
程序从源代码到可执行程序
这篇文章介绍了从源代码到可执行程序的转换过程,包括预处理、编译、汇编和链接四个主要步骤,并提到了解释性语言、脚本语言和超文本语言的不同处理方式。
30 0
|
机器学习/深度学习 编译器 C语言
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
139 0
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
|
XML Android开发 数据格式
|
Linux
LINUX编译时缺少头文件,查找依赖库的终极解决办法
LINUX编译时缺少头文件,查找依赖库的终极解决办法
428 0
C++ 编写DLL文件给易语言调用
  摸索了两天了,终于解决了所有问题,在此跟大家分享。   需要三个文件,dll_demo.h、dll_demo.cpp、dll_dome.def   直接上代码:   头文件如下: 1 #ifndef _DLL_DEMO_H_ 2 #define _DLL_DEMO_H_ 3 #ifdef DL...
2181 0
|
分布式计算 Java Scala
Spark源码打包编译的过程
Spark源码打包编译的过程
319 0
Spark源码打包编译的过程
|
IDE 开发工具
刚刚编译运行的项目,突然就不能用了。AndroidStudio最难用
刚刚编译运行的项目,突然就不能用了。AndroidStudio最难用
96 0
|
Android开发 C++ Windows
Ogrekit源码Windows平台编译_Android环境搭建
Ogrekit源码Windows平台编译_Android环境搭建
147 0
|
C++ 数据库
VS2010每次编译都重新编译整个工程的解决方案
在使用VS2010编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍。由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译。
1470 0