将 Visual Studio 2012 配置为使用 Mono 的 C# 编译器,而不是默认的 csc.exe

Posted

技术标签:

【中文标题】将 Visual Studio 2012 配置为使用 Mono 的 C# 编译器,而不是默认的 csc.exe【英文标题】:Configure Visual Studio 2012 to use Mono's C# compiler instead of the default csc.exe 【发布时间】:2013-03-03 09:16:37 【问题描述】:

我在一个名为 Unity3D 的游戏引擎中工作,它的脚本系统在 Mono 上运行。默认情况下,Unity 使用修改版的 Mono 来开发/编译脚本。我正在设置我的 Visual Studio 以更好地处理 Unity 项目及其与 .NET 相关的各种问题。

我目前正试图配置 Visual Studio 来处理我的各种程序集的编译。 Unity 使用旧 Mono 编译器的修改版本,因此我不能使用默认的 csc.exe 来构建程序集。

我的理想解决方案是 Visual StudiosBuild Solution 选项,以使用我指向的编译器处理我的项目,也许是通过配置 MSBuild (.csproj) 文件?如果没有做到这一点,我可以使用 Mono 的 mcs/gmcs 编译器从 Visual Studio 中 构建另一种方法吗?

【问题讨论】:

你看docs.unity3d.com/Documentation/Manual/…了吗? 我看过是的。文档指出 Unity 使用自己的自定义编译器,但没有提供有关如何通过 Visual Studio 引用它的见解。 【参考方案1】:

一种方法是编写一个 MSBuild/PSake 脚本,您可以在 VS 中通过快捷键运行该脚本。我写了一篇关于hooking a build script up via a shortcut key 的博文。基本上,您将编写一个批处理文件来执行 MSBuild 脚本并为其分配一个键盘快捷键,例如 ALT-1。然后你可以点击 ALT-1 而不是 CTRL-SHIFT-B 来编译项目。

【讨论】:

这是一种可能的方法,我将坚持我的后备位置。我的理想仍然是正确配置 Visual Studio MSBuild 文件或其他一些设置,以简单地指向我希望使用的编译器。 是的,如果您可以重新配置 VS,这并不理想,但这是一个选项【参考方案2】:

我做了一个项目,在我的 Mac 上运行 Unity,并在 Parallels 上运行 Windows/VS2008。在我的 Visual Studio 解决方案中,我引用了适当的 Mono dll 而不是普通的 .NET dll(即 System、System.Xml 等)并使用了典型的 .. 我还使用 Mono 提供的 nUnit dll 编写了所有单元测试分配。由于 Unity 是(或至少是)仅使用 .cs 文件,因此只需将它们复制(通过 Post Build Script)到我的 Unity 项目结构中效果很好。 Unity 会检测到更改并更新脚本。这个方法很有效,不过我两年前就用过,不知道现在还能不能用。

此外,似乎有人在制作有关如何执行此操作的视频时遇到了麻烦: http://forum.unity3d.com/threads/120327-Video-Tutorial-How-to-use-Visual-Studio-for-all-your-Unity-development

【讨论】:

以上是关于将 Visual Studio 2012 配置为使用 Mono 的 C# 编译器,而不是默认的 csc.exe的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 - 数据库项目 - 设置发布的默认配置文件

将 Visual Studio 2012 配置为使用 Mono 的 C# 编译器,而不是默认的 csc.exe

visual studio 2013和2012的配置要求

Win7_64bits下Visual Studio2012中安装配置OpenCV

Visual Studio 2012 数据库项目 - 文件路径配置

Visual Studio 2012----OpenGL的配置