[英]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 2017
的Build 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.