Ответ 1
knocte прав, установите моно-полный
apt-get install mono-complete
Я не знаю, почему, но у меня были ошибки, связанные с установкой только mono-xbuild,
и запустите из командной строки:
xbuild yourvisualcsharpproject.csproj
Я новичок в этом и не знаю с чего начать.
Я хочу скомпилировать проект Visual Studio С# с Mono в Linux (по командной строке).
Файл 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;
Я понятия не имею, нужно ли мне указывать ссылки на компилятор, или он сам потянет их, независимо от того, будет ли он знать, где их искать или нет. Я никогда не делал это раньше. Но мне просто нужно скомпилировать этот проект.
Спасибо!
knocte прав, установите моно-полный
apt-get install mono-complete
Я не знаю, почему, но у меня были ошибки, связанные с установкой только mono-xbuild,
и запустите из командной строки:
xbuild yourvisualcsharpproject.csproj
Вы пробовали xbuild? Это эквивалент MSBuild в мире Mono. Если MSBuild может скомпилировать ваш проект в Windows, xbuild должен иметь возможность делать то же самое на Linux (если это не так, укажите ошибку в Bugzilla).
ОБНОВЛЕНИЕ. В настоящее время разработчики/упаковщики Mono находятся в процессе объединения исходного (и недавно открытого) MSBuild, который теперь является кроссплатформенным. Например, он уже доступен в последних установщиках Mono для Mac, поэтому вы можете использовать программу командной строки msbuild
для создания вашего проекта/решений.
Вы можете создать визуальную студию и развернуться в Linux и работать под моно. Посмотрите на эту статью
Например, Mono предоставляет кросс-платформенные функции, но не реализует некоторые связанные с Windows функции, предоставляемые .NET Framework. Таким образом, вы не можете скомпилировать .NET на Windows и ожидать, что он будет работать плавно в Unix/Mono: Он может работать, но есть большая вероятность, что он потерпит неудачу. На самом деле, чем сложнее программа, тем выше вероятность (вы использовали что-то недоступное в Mono).
Компиляция с помощью инструмента командной строки: Xbuild
Если вы хотите скомпилировать .sln/.csproj из командной строки для mono, то xbuild (моно-клон MSBuild) - это способ:
xbuild mysolution.sln
xbuild myproject.csproj
Страница руководства xbuild на Ubuntu.
xbuild.exe находится в моноустановке, скорее всего в:
C:\Program Files (x86)\Mono\lib\mono\4.5
Компилировать из IDE (VS)
Вы можете скомпилировать Mono в Windows, из Visual Studio с добавлением MonoHelper (используя xbuild внизу).
Существует также другое решение, которое нацелено на профиль "Моно".NET Framework от визуальной студии. Следующие шаги взяты из здесь.
Примечание.. Я попытался изменить местоположение профиля в 4.5 (но это не работает, либо vs не находит его, либо обнаруживает, что он не установлен), поэтому всегда используйте каталог v4.0 для установки профиля на виртуальной машине v4.0. Это ограничение и тот факт, что вещь "Профиль" была прекращена, заставляет меня думать, что она не будет работать для более высокой версии инструментов.
Подобный трюк профиля используется для 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
Сделать ссылку на папку Mono внутри Microsoft References (вам может потребоваться запустить следующие права администратора)
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>
Компиляция с помощью MonoDevelop/Xamarin Studio
MonoDevelop работает в Unix и Windows, и вы можете легко переключиться с .Net compile/debug/run на Mono compile/debug/запустить в среде IDE. Однако, хотя MonoDevelop достаточно эффективен для сезонного разработчика С#, он еще не достиг мощности Visual Studio в сочетании с Resharper.