на Windows с использованием Visual Studio 2015, я могу скомпилировать проект с dnu build
. Файл project.json
выглядит следующим образом:Как настроить таргетинг .NET35 на OSX с помощью mono и dnx/dnvm?
{
"version": "1.0.0-*",
"description": "My Class Library",
"authors": [ "Class Library template" ],
"tags": [""],
"projectUrl": "",
"licenseUrl": "",
"tooling": {
"defaultNamespace": "Common"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-*",
"System.Collections": "4.0.11-beta-*",
"System.Linq": "4.0.1-beta-*",
"System.Runtime": "4.0.21-beta-*",
"System.Threading": "4.0.11-beta-*"
}
}
}
}
После установки mono
, dnvm
и dnx
на Mac, согласно this tutorial, я могу компилировать тот же проект на OSX! Это само по себе уже довольно удивительно!
сейчас, я добавил следующие рамки для моего project.json
файла:
"frameworks": {
"dnx35": { }, //"net35"
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-*",
"System.Collections": "4.0.11-beta-*",
"System.Linq": "4.0.1-beta-*",
"System.Runtime": "4.0.21-beta-*",
"System.Threading": "4.0.11-beta-*"
}
}
Это все еще компилирует на Windows, и производит три набора библиотек DLL, как и ожидалось.
Однако на OSX он не создает цель dnx20. Хотя, насколько я понимаю, монокомпилятор mcs
может быть настроен на таргетинг .net35
, перейдя в параметр sdk
.
Так что мой вопрос: могу ли я настроить .NET35 на dnx на OSX, используя моно?
EDIT Целью этого вопроса является компиляция набора dll, который может быть импортирован в Unity3d. И поскольку Unity3d использует mono в качестве среды выполнения, я хотел бы иметь возможность сделать это, используя dnu build
, чтобы иметь возможность разрабатывать эти DLL на любой платформе.
Я очень рекомендую попробовать CoreCLR вместо Mono. Проделана большая работа, чтобы убедиться, что работает сценарий OSX/Ubuntu. –
Другой вопрос. Зачем настраивать 3.5 на OSX, если у вас работает 'dnxcore50'? 'dnxcore50' будет поддерживать OSX/Linux/Windows без проблем. –
хороший вопрос! Не упоминал об этом в ответе. Созданные dll должны использоваться Unity3d 5.x, которые используют моно, и поэтому должны быть совместимы с .NET 3.5. – RoelF