zoukankan      html  css  js  c++  java
  • SharpDevelop下编译及运行Target Framework为Mono的程序

    就是想在SharpDevelop能将程序编译成Mono平台,然后用Mono运行时运行起来。整个过程是这样滴:

    第一步:在SharpDevelop 下安装Mono插件

    1. 确保Mono和SharpDevelop 都正确安装;

    2. 解压SharpDevelop 的源码压缩包,然后将源码包底下的Samples文件夹拷贝到SharpDevelop的安装目录下的AddIns同级目录;

     

    3. 在SharpDevelop中打开Samples/Mono/Mono.AddIn.sln,切换成Release(最好),然后编译。编译通过后插件会自动安装到插件管理目录下;

    4. 重新启动SharpDevelop,这样我们就能在新建项目里看到C#和VB.net下都出现了Mono工程,安装成功!

     第二步:改变Target Framework 为Mono 2.0

    本来在SharpDevelop中的工程设置中的Target Framework 可选Mono的(效果如下图)

     

     

    可是SharpDevelop 3.0 版以后去掉了对Mono平台的支持,官方解释如下:

    The decision to "relegate" Mono from production to sample status has been based on multiple factors. For one, we only support basic compilation for Mono, no debugger nor any kind of visual designers (like GTK#). We got lots of support questions regarding these, and the honest answer had to be "we won't support that, sorry". Then in December Miguel announced that MonoDevelop will come to Windows (MonoDevelop is a fork of SharpDevelop), which meant that an IDE would come to Windows that fully supports all the things in Mono we don't have.

    That's why we decided to make Mono an addin for people who know how to deal with source code, all the features are still there. And now that it is separate, it also makes a great sample addin because of the deepness of integration with low-level features of SharpDevelop.

     所以,如果非要在SharpDevelop里编译Mono为目标平台的工程,就需要在Project文件里改动2处:

    1) <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <ProjectGuid>{3AF00322-0172-45A8-B233-9F7F17DE344E}</ProjectGuid>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <OutputType>Exe</OutputType>
        <RootNamespace>Test</RootNamespace>
        <AssemblyName>Test</AssemblyName>
        <MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
      </PropertyGroup>

    2)将<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />

    替换为<Import Project="$(MonoBuildTasksPath)\Mono.Build.CSharp.targets" />

     这样就能保证编译出来的代码是Mono为目标平台的了。

    第三步:用Mono的Runtime运行该程序

    需要照下面这么改动:

     

    只有经过这三步,一个C#或者VB.net程序就能在SharpDevelop里以Mono为平台运行了。

     写完了这些介绍步骤,觉得自己有点邪恶,人家官方都说了MonoDevelop已经能在windows下运行了,并且他们即使支持也只是支持部分功能且不支持调试,意思是劝大家去用MonoDevelop吧,SharpDevelop还是专注于Win平台。干嘛自己非折腾SharpDevelop呢。

     其实呀,我也是后来才知道有这个官方说明的,开始也一直纳闷为啥Target Framework里的Mono没了呢,那么多书及文章里都提到那么做的。所以呢,可能这篇文章更大的意义是告诉大家不用折腾了,还是使MonoDevelop吧。况且,我想用的Boo语言,在SharpDevelop里不能编译成Mono平台,貌似这个编译器还没出。

    但是用MonoDevelop也不很爽,因为它天生是给Linux玩的,风格习惯都是Linux,对我这样玩惯了Win的人还是有点不适应。另外目前的2.2版本在Win下运行感觉有点不利索。不过我已经找到monodevelop-boo-2.1.0.tar.bz2了,这样在monodevelop下就能玩Boo了。可是这是Linux下的。。。

    所以,目前正在下载Ubantu 9.10。本来有个 Ubantu 8.1了,可是在VMware 6.5下安装后死活启动不起来,没办法下个新版本吧。

    折腾。。。

    希望国内有研究这些开源软件的人一起来讨论,折腾,折腾,讨论。。。

  • 相关阅读:
    gulp教程、gulp-less安装
    vue学习总结
    javascript数组去重
    【操作系统】操作系统高频面试考点总结
    【面经系列】一线互联网大厂前端面试技巧深入浅出总结
    【编程题与分析题】Javascript 之继承的多种实现方式和优缺点总结
    【计算机网络】TCP基础知识详解
    【操作系统】操作系统面试基础知识点总结
    【数据结构与算法】数据结构基础知识总结(面试考点)
    【前端知识体系-JS相关】JS-Web-API总结
  • 原文地址:https://www.cnblogs.com/cubean/p/1601130.html
Copyright © 2011-2022 走看看