是否可以从 Mono 的命令行构建 MSBuild 文件(visual studio sln)?

Posted

技术标签:

【中文标题】是否可以从 Mono 的命令行构建 MSBuild 文件(visual studio sln)?【英文标题】:Is it possible to build MSBuild files (visual studio sln) from the command line in Mono? 【发布时间】:2010-09-08 11:03:57 【问题描述】:

是否可以在不启动 MonoDevelop 的情况下构建 Visual Studio 解决方案?

【问题讨论】:

【参考方案1】:

我认为您正在寻找 xbuild: http://www.mono-project.com/Microsoft.Build

【讨论】:

【参考方案2】:

当前状态(Mono 2.10,2011):xbuild 现在能够构建所有版本的 Visual Studio / MSBuild 项目,包括 .sln 文件。只需像在 Microsoft .Net Framework 上执行 msbuild 一样运行 xbuild。你不需要安装 Monodevelop,xbuild 自带了标准的 Mono 安装。

如果您的构建使用自定义任务,如果它们不依赖于 Windows 可执行文件(例如 rmdirxcopy),它们应该仍然可以工作。

当您编辑项目文件时,请使用标准 Windows 路径语法 - 如果需要,它们将由 xbuild 转换。此规则的一个重要警告是区分大小写 - 不要混合相同文件名的不同大小写。如果您有一个这样做的项目,您可以通过调用MONO_IOMAP=case xbuild foo.sln(或尝试MONO_IOMAP=all)来启用兼容模式。 Mono 有一个页面描述了更高级的MSBuild project porting 技术。

Mono 2.0 答案 (2008):xbuild 尚未完成(它与 VS2005 .csproj 文件配合得很好,与 VS2008 .csproj 有问题并且不处理 .sln)。 Mono 2.1 计划将 mdtool(MonoDevelop 命令行构建引擎)的代码库合并到其中,但目前mdtool 是更好的选择。 mdtool build -f:project.slnman mdtool 如果你安装了 MonoDevelop。

【讨论】:

显然 mdtool 已重命名为 mdrun 反过来,你有一个过时的 MonoDevelop。 从 2.10.9 开始的 xbuild 没有给我任何快乐。 “错误 MSB4126:指定的解决方案配置“Debug|web”无效”——尽管按照错误消息中的建议使用 /p:Platform="Any CPU"。【参考方案3】:

xbuild 现在支持 VS2005 和 VS2008 的解决方案和项目。

【讨论】:

【参考方案4】:

截至 2017 年 8 月,我们现在可以使用

msbuild

xbuild 的命令已被贬值。

【讨论】:

msbuild 目前还不是 Debian 的一部分

以上是关于是否可以从 Mono 的命令行构建 MSBuild 文件(visual studio sln)?的主要内容,如果未能解决你的问题,请参考以下文章

您可以从 msbuild.exe 命令行关闭条件编译符号吗?

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

msbuild 是不是知道它是从 Visual Studio 调用还是从命令行调用?

使用 msbuild 从命令行创建应用程序包

使用 MSBuild 从 Visual Studio 2013 命令行发布 Clickonce 找不到 SignTool.exe

是否可以从命令行创建网站应用程序发布配置文件?