繁体   English   中英

如何使用msbuild从命令行编译我的c#解决方案

[英]How to compile my c# solution with msbuild from command line

我有一个ac#solution(开源,可以在这里: https//github.com/tzachshabtay/MonoAGS ),我可以从Visual Studio 2017(Dot net framework)和VS for Mac(Mono)编译。 我也可以在Linux和mac上成功地在Travis CI上用msbuild编译它( https://github.com/tzachshabtay/MonoAGS/blob/master/.travis.yml )。

我不能做的是在我的本地机器上从Windows 10在命令行上编译它。 我希望能够为DotNet Framework和Mono编译它。 所以我尝试使用单声道安装和Build Tools for Visual Studio 2017Build Tools for Visual Studio 2017 MSBuild(注意:我希望能够在Windows上安装,即使没有安装vs2017,但是在本地机器上安装vs2017,不要知道这是否重要)。 这两个安装都是针对今天的最新版本。

这是我在单声道上从msbuild获得的错误( PATH设置为%programfiles(x86)%\\Mono\\bin ):

项目“C:\\ Github \\ MonoAGS \\ MonoAGS.sln”(1)在节点1(默认目标)上构建“C:\\ Github \\ MonoAGS \\ Source \\ Tests \\ Tests.csproj”(2)。 项目“C:\\ Github \\ MonoAGS \\ Source \\ Tests \\ Tests.csproj”(2)在节点1上构建“C:\\ Github \\ MonoAGS \\ Source \\ AGS.API \\ AGS.API.csproj”(3)(GetTargetFrameworks目标(一个或多个))。 C:\\ Program Files \\ dotnet \\ sdk \\ 2.1.4 \\ Sdks \\ Microsoft.NET.Sdk \\ Sdk \\ Sdk.props(29,11):错误MSB4226:导入的项目“C:\\ Program Files(x86)\\ MSBuild \\ 15.0 \\ Microsoft.Common.props“未找到。 另外,尝试在$(MSBuildExtensionsPath) - “C:\\ Program Files(x86)\\ MSBuild”的后备搜索路径中找到“15.0 \\ Microsoft.Common.prop s”。 这些搜索路径在“C:\\ Program Files \\ Mono \\ lib \\ mono \\ msbuild \\ 15.0 \\ bin \\ MSBuild.dll.config”中定义。 确认声明中的路径是正确的,并且该文件存在于其中一个搜索路径的磁盘上。 [C:\\ Github上\\ MonoAGS \\源\\ AGS。 API \\ AGS.API.csproj]

这是我从构建工具从msbuild获得的错误( PATH设置为%programfiles(x86)%\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin ):

项目“C:\\ Github \\ MonoAGS \\ Source \\ Tests \\ Tests.csproj”(2)在节点1上构建“C:\\ Github \\ MonoAGS \\ Source \\ AGS.API \\ AGS.API.csproj”(3)(GetTargetFrameworks目标(一个或多个))。 C:\\ Github \\ MonoAGS \\ Source \\ AGS.API \\ AGS.API.csproj:错误MSB4247:无法加载SDK解析器。 存在清单文件,但找不到SDK解析程序DLL文件的路径。 清单文件路径'C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ BuildTools \\ MSBuild \\ 15.0 \\ Bin \\ SdkResolvers \\ Microsoft.Build.NuGet SdkResolver \\ Microsoft.Build.NuGetSdkResolver.xml'。 SDK解析器路径:C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ BuildTools \\ Common7 \\ IDE \\ CommonExtens ions \\ Microsoft \\ NuGet \\ Microsoft.Build.NuGetSdkResolver.dll

至于单声道错误, MSBuild\\15.0文件夹存在,但Microsoft.Common.props不存在(我无法在该机器上的任何其他地方找到它)。

至于构建工具错误, CommonExtensions文件夹存在,但其中没有Microsoft文件夹。

我正在尝试的命令是: msbuild /p:Configuration=DEBUG /p:Platform="Any CPU" MonoAGS.sln

为什么不起作用? 我错过了什么? 谢谢。

如何使用msbuild从命令行编译我的c#解决方案

对于构建工具错误,您应该通过Visual Studio Installer安装组件NuGet包管理器

在此输入图像描述

当我们使用Visual Studio构建工具来构建项目时,我们还需要为项目安装一些必要的组件。

对于单声道错误,由于我没有单声道ENV,我无法指定该错误的直接原因,如果可能,您可以尝试安装Mono框架 如果没有帮助,您可以使用mono和msbuild标签打开一个新线程。

更新:

如何使用命令行,btw(用于设置脚本)安装它?

是的,您可以使用vs_buildtools.exe来安装该组件ID Microsoft.VisualStudio.Component.NuGet

vs_buildtools.exe --add Microsoft.VisualStudio.Component.NuGet --quiet

注意:您应该将vs_buildtools__2048890300.15156xxxx.exe重命名为vs_buildtools.exe,然后使用vs_buildtools.exe进行安装。

检查Visual Studio Build Tools 2017组件目录使用命令行参数安装Visual Studio 2017以获取更多详细信息。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM