从命令行编译 C# 7.2 项目

Posted

技术标签:

【中文标题】从命令行编译 C# 7.2 项目【英文标题】:Compile C# 7.2 project from command line 【发布时间】:2019-08-17 13:55:02 【问题描述】:

我正在为我的代码生成库创建测试自动化。 我在 C# 7.2 中有一个测试项目。该项目使用 Visual Studio 编译,没有任何问题。 我的测试是更新这个项目的代码。然后我希望测试编译项目、加载程序集并验证它是否按预期工作。

我尝试了 msbuild 和 csc。两人都在抱怨 7.2 对他们来说太高了。

我想应该有一种方法可以使用 devenv 编译项目,它已经安装并且可以通过 UI 完美运行。

有吗?

【问题讨论】:

像这样的devenv command:[devenv SolutionName /Build SolnConfigName /Project ProjName /ProjectConfig ProjConfigName]? 【参考方案1】:

对于 C# 7.2,您必须使用 VS2017 随附的 MSBuild 版本(版本 15)。假设命令行在安装了VS2017 Professional的机器上运行,那么正确的MSBuild路径应该是

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe

任何其他版本的 MSBuild 都应该无法编译 C# 7。具体来说,我正在使用 MSBuild 15.9 构建 C# 7.2 项目,它可以工作。

编辑

您可以使用 Visual Studio (see here) 的构建工具安装 MSBuild 15。我不确定将安装 哪个 版本,但我认为它会是最新的。 请注意,根据this answer,路径会略有不同。

【讨论】:

很高兴我能帮上忙 :)

以上是关于从命令行编译 C# 7.2 项目的主要内容,如果未能解决你的问题,请参考以下文章

是否可以进行命令行项目升级并从 Visual C# 2005 编译到 Visual C# 2008 Express?

用java或C#调用命令行对android工程进行编译、打包和签名,急求!!

如何从命令行编译 iOS 项目

为啥从命令行编译而不是从 IDE 编译时会出现歧义错误?

如何从命令行编译 Visual Studio 项目?

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