在Mono的命令行中是否有可能构建MSBuild文件(Visual Studio SLN)?

64

是否有可能构建Visual Studio解决方案而不必启动MonoDevelop?

4个回答

70

当前状态(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 是更好的选择。如果您已经安装了MonoDevelop,则可以使用mdtool build -f:project.slnman mdtool


显然,mdtool已更名为mdrun。 - Mauricio Scheffer
情况正好相反,您的 MonoDevelop 版本已经过时了。 - skolima
xbuild 从2.10.9开始让我感到很困扰。"error MSB4126:指定的解决方案配置“Debug|web”无效"--尽管按照错误消息中的建议使用/p:Platform="Any CPU"。 - yoyo

16

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

msbuild

命令,因为xbuild已经被废弃。


2
msbuild目前尚未成为Debian的一部分。 - Polluks

7

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


4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接