Ala*_*air 47 c# compiler-construction mono visual-studio
我是新手,不知道从哪里开始.
我想在Linux上使用Mono编译Visual Studio C#项目(通过命令行).
main.cs文件包含以下引用:
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using iTextSharp.text;
using iTextSharp.text.pdf;
Run Code Online (Sandbox Code Playgroud)
我不知道是否需要记下对编译器的引用,或者它是否会将它们自身拉出来,无论它是否知道在哪里查找它们.我以前从未这样做过.但我只需要编译这个项目.
谢谢!
Oli*_*ier 22
knocte是对的,安装mono-complete
apt-get install mono-complete
Run Code Online (Sandbox Code Playgroud)
我不知道为什么但是我在安装mono-xbuild时遇到了错误,
并从命令行运行:
xbuild yourvisualcsharpproject.csproj
Run Code Online (Sandbox Code Playgroud)
例如,Mono提供跨平台功能,但不实现.NET Framework提供的某些Windows链接功能.因此,您无法在Windows上使用.NET进行编译,并期望它在Unix/Mono上顺利运行:它可能有效,但很有可能会失败.事实上,程序越复杂,机会就越高(你使用Mono中没有的东西).
使用命令行工具进行编译:Xbuild
如果你想从命令行编译.sln/.csproj对单声道,那么xbuild(MSBuild的单声道克隆)是要走的路:
xbuild mysolution.sln
xbuild myproject.csproj
Run Code Online (Sandbox Code Playgroud)
xbuild.exe位于单声道安装中,最有可能出现在:
C:\Program Files (x86)\Mono\lib\mono\4.5
Run Code Online (Sandbox Code Playgroud)
从IDE编译(VS)
您可以在Windows上使用MonoHelper插件(使用下面的xbuild)从Visual Studio编译Mono.
还有另一个解决方案,它是针对visual studio的"Mono".NET Framework配置文件.以下步骤来自这里.
注意: 我尝试在4.5中更改配置文件的位置(但这不起作用;要么vs没有找到它,要么检测到它没有安装)所以总是使用v4.0目录来安装配置文件基于v4.0 VM.这个限制以及"Profile"事件已经停止的事实使我认为它不适用于更高版本的Tools.
顺便说一句,Unity使用相同的配置文件技巧.
创建两个注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0,Profile=Mono
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0,Profile=Mono
链接到Microsoft References Assemblies目录中的Mono目录(您可能需要以管理员权限运行以下内容)
cd "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile"
mklink /d Mono "C:\Program Files (x86)\Mono\lib\mono\4.5"
cd Mono
mkdir RedistList
cd RedistList
notepad FrameworkList.xml
编辑 FrameworkList.xml
粘贴以下内容 FrameworkList.xml
<?xml version="1.0" encoding="utf-8"?>
<FileList Redist="Mono-4.5" Name="Mono 4.5 Profile" RuntimeVersion="4.5" ToolsVersion="4.0" > </FileList>
Run Code Online (Sandbox Code Playgroud)
使用MonoDevelop/Xamarin Studio进行编译
MonoDevelop在Unix和Windows上运行,您可以在IDE中轻松地从.Net编译/调试/运行切换到Mono编译/调试/运行.然而,虽然MonoDevelop对于C#季节性开发人员而言非常有效,但它尚未达到Visual Studio与Resharper相结合的强大功能.