Использование Visual Studio для разработки mono-приложений
-
03-07-2019 - |
Вопрос
Как мне использовать Visual Studio для разработки приложений на Mono?Возможно ли это?
Решение
Вы просто создаете приложения в Visual Studio и запускаете их под Mono, а не под .NET.Двоичные файлы должны быть совместимы...но вам нужно будет убедиться, что вы не используете какие-либо библиотеки, которые недоступны в Mono - см. Рекомендации по совместимости с монопрограммами.
(Согласно этой странице, вам нужно отключить инкрементные сборки в Visual Studio, хотя - момент, о котором я раньше не знал :)
Другие советы
Видишь это статья о том, как запускать ваши приложения, ориентируясь на платформу mono от VS.
Мигель опубликовал эта запись некоторое время назад, так что это довольно устарело.Вы также можете попробовать это и это (да здравствует веб-архив!)
Начиная с версии 2.0, MonoDevelop поддерживает формат файла проекта VisualStudio / solutions.Это означает, что вы можете использовать одну и ту же кодовую базу в Windows с VS и .Net и в Linux с MonoDevelop и Mono.Это, на мой взгляд, лучший способ добиться успеха.Нет никаких серьезных причин запускать приложение в Mono в Windows, кроме как в целях тестирования, и для этого я бы предпочел настроить виртуальную машину для тестирования программного обеспечения в родной среде.
Я опубликовал статью о том, как интегрировать Mono 2.8 (сборку для .Net 4.0) в Visual Studio 2010 здесь - там есть ссылка на другой профиль, созданный для Mono 2.4 (.Net 3.5), если это то, к чему вы стремитесь.
Вы можете интегрировать новый профиль Mono 2.8, выполнив 3 простых шага:
- Загрузите сам профиль с здесь.
Распакуйте содержимое Zip-архива профиля в один из следующих каталогов:
- 32-разрядные системы:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile
64-bit systems: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile
- 32-разрядные системы:
Папка "Mono" в ZIP-файле должна находиться непосредственно под каталогом "Profile".
Перезапустите Visual Studio, если она была запущена, откройте свойства проекта, который вы хотите использовать с Mono, и выберите профиль Mono для 2.8:
Примечание: Вы не сможете выбрать монопрофиль прямо из диалогового окна "Новый проект";по какой-то причине этот список профилей не совпадает.Сначала создайте свой проект как проект .Net Framework 4.0, а после создания установите для свойств проекта значение Mono.
Если вы обновили свою установку MonoDevelop до последней версии (по крайней мере, на сегодняшний день), это решение Visual Studio и файл проекта откроются без проблем - никаких изменений вообще не требуется.
Если вы столкнетесь с проблемой, которая вам нужна .NETFramework,Version=v4.0,Profile=Mono
чтобы запустить приложение, хитрость заключалась в создании раздела реестра.
Для бега Windows 7 x64, это было: HKEY\_LOCAL\_MACHINESOFTWAREWow6432NodeMicrosoft .NETFrameworkv4.0.30319SKUs .NETFramework,Version=v4.0,Profile=Mono
Я полагаю, для x86 это HKEY\_LOCAL\_MACHINESOFTWAREMicrosoft.NETFramework v4.0.30319SKUs.NETFramework,Version=v4.0,Profile=Mono
(Где v4.0.30319 будет версией текущей установленной платформы 4.0.)
Да, вы можете разрабатывать в Visual Studio и ориентироваться на Mono (Mono для x86).
Вот вам и ответ Я использовал все доступные возможные альтернативы для компиляции против Mono в Windows.Тем не менее, он ориентирован на Моно x86.В качестве резюме давайте перечислим возможные варианты разработки VS:
- Добавление монохелпера
- Монопрофиль
Для Android/Ios, вы также можете выполнять кросс-компиляцию и отладку внутри Visual Studio (Визуальная студия) с Добавление Xamarin.Хотя это не бесплатно для коммерческих приложений большого размера, доступна бесплатная версия для создания небольших приложений.
Примечание: Для тех, кто задается вопросом, почему вообще я хотел бы разрабатывать в Visual Studio на Windows, а не в MonoDevelop на Unix, позвольте сказать, что опыт разработчика в MonoDevelop не идет ни в какое сравнение с VS one (особенно когда дело доходит до отладчика / рефакторинга, последнее больше связано с Resharper, чем с самим VS).