dnu build
编译项目。
project.json
文件如下所示:
{
"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-*"
}
}
}
}
在Mac上安装mono
,dnvm
和dnx
后,根据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
。
所以我的问题是:我可以使用mono?
在OSX上使用dnx来定位.NET35吗? 修改
这个问题的目标是编译一组可以导入Unity3d的dll。由于Unity3d使用mono作为运行时,我希望能够通过使用dnu build
来实现,因为能够在任何平台上开发这些dll。
答案 0 :(得分:1)
您可以通过project.json文件中的compilationOptions
传递自定义Rosyln编译器选项:
"compilationOptions": {
"optimize": true,
"define": ["RELEASE", "TRACE", "PLAYSCRIPT"]
},
查看Github aspnet / dnx项目中的各种project.json
文件,即project.json
但是这些选项被传递给Rosyln而不是mcs,Mono被用作Rosyln编译器作为服务的 CLR主机,但我不相信你是替代Mono& #39; s mcs
为此(评论这个人?)