简体   繁体   English

正确的MSBuild.exe位置,以使用命令行构建.net 4.5应用程序

[英]Correct location of MSBuild.exe to build .net 4.5 application using command line

I have asp.net web api application targeting 4.5 framework. 我有针对4.5框架的asp.net Web API应用程序。

I am trying to create a docker image for my application. 我正在尝试为我的应用程序创建一个docker映像。 In order to build the application, I can use MSBuild.exe available in C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe or C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe locations. 为了构建应用程序,我可以使用C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exeC:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe位置。

When I build using C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe location, I get error saying " C:\\MyApp-Api\\MyApp-Api.csproj(985,3) : error MSB4019: The imported project "C:\\Program Files (x86)\\MSBuild\\Microsoft \\VisualStudio\\v11.0\\WebApplications\\Microsoft.WebApplication.targets" was not f ound. Confirm that the path in the declaration is correct, and that th e file exists on disk." 当我使用C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe位置进行C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe ,出现错误消息“ C:\\ MyApp-Api \\ MyApp-Api.csproj(985,3):错误MSB4019:导入的项目“ C:\\ Program Files(x86)\\ MSBuild \\ Microsoft \\ VisualStudio \\ v11.0 \\ WebApplications \\ Microsoft.WebApplication.targets”不正确。请确认声明中的路径正确,并且文件存在于磁盘上。”

I am able to build my application using C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe location. 我可以使用C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe位置来构建应用程序。

Questions: 问题:

  1. What is the difference between the MsBuild.Exe available in these two folders? 这两个文件夹中可用的MsBuild.Exe有什么区别?
  2. Ideally I think using C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe location is the right approach as it comes with default location and I think MSBuild in program files comes due to installation of Visual Studio. 理想情况下,我认为使用C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe位置是正确的方法,因为它带有默认位置,并且我认为程序文件中的MSBuild是由于安装了Visual Studio而引起的。 and on my Build server I will not have visual studio installed. 并且在我的构建服务器上,我将没有安装Visual Studio。
    1. In order to build the application on container, I need to specify SDK which will allow me to build the application. 为了在容器上构建应用程序,我需要指定SDK,这将允许我构建应用程序。 Which version of SDK, I need to build .net 4.5 application. 我需要构建.net 4.5应用程序的哪个版本的SDK。

I was browsing web with a similar query today and stumbled upon this random link to a Veracode extension which lists nicely the difference. 我今天在浏览类似的查询的网页时,偶然发现了指向Veracode扩展程序的随机链接,其中很好地列出了区别。

Visual Studio 2017 Visual Studio 2017

The first two paths below that contain Professional differ based on the edition of Visual Studio you have installed. 下面的包含Professional的前两个路径因您安装的Visual Studio版本而异。 Replace Professional with Enterprise or Community, when appropriate. 在适当的情况下,将Professional替换为Enterprise或Community。

Note: the Visual Studio Preview install also changes the path based on Enterprise, Professional, or Community. 注意:Visual Studio Preview安装还会根据Enterprise,Professional或Community更改路径。

  • Standard Visual Studio Paths 标准Visual Studio路径

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

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

  • Visual Studio Preview Paths Visual Studio预览路径

C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Professional\\MSBuild\\15.0\\Bin C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ Preview \\ Professional \\ MSBuild \\ 15.0 \\ Bin

  • MSBuild Tools Paths MSBuild工具路径

C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\ C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ BuildTools \\ MSBuild \\ 15.0 \\ Bin \\

C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\amd64\\ C:\\ Program Files(x86)\\ Microsoft Visual Studio \\ 2017 \\ BuildTools \\ MSBuild \\ 15.0 \\ Bin \\ amd64 \\

Visual Studio 2015 Visual Studio 2015

C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\ C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\amd64\\ C:\\ Program档案(x86)\\ MSBuild \\ 14.0 \\ Bin \\ C:\\ Program档案(x86)\\ MSBuild \\ 14.0 \\ Bin \\ amd64 \\

Visual Studio 2013 Visual Studio 2013

C:\\Program Files (x86)\\MSBuild\\12.0\\Bin\\ C:\\Program Files (x86)\\MSBuild\\12.0\\Bin\\amd64\\ C:\\ Program档案(x86)\\ MSBuild \\ 12.0 \\ Bin \\ C:\\ Program档案(x86)\\ MSBuild \\ 12.0 \\ Bin \\ amd64 \\

Visual Studio 2012 Visual Studio 2012

C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\ C:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ C:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\


It seems like you have both VS2012 and VS2015 installed. 看来您同时安装了VS2012和VS2015。 I dont know much about ASP.NET and docker but will try to answer your questions: 我对ASP.NET和docker不太了解,但是会尝试回答您的问题:

  1. I think the difference is explained above. 我认为上面已经解释了区别。 The problem you are experiencing there is explained better in here: The imported project Microsoft.WebApplications.targets was not found Maybe give it a go? 您在此处遇到的问题在这里得到了更好的解释: 找不到导入的项目Microsoft.WebApplications.targets也许可以解决一下?
  2. Relying on https://dotnet.microsoft.com/download/visual-studio-sdks and https://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers it seems like there is no SDK for .net 4.5 as it is included in VS2012. 依靠https://dotnet.microsoft.com/download/visual-studio-sdkshttps://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers似乎有VS2012中未包含用于.net 4.5的SDK。 But any higher version should build your project to 4.5 anyway. 但是,任何更高版本的工具都应将您的项目构建为4.5。
  3. Reading (3) I would use VS2015 msbuild if VS2012 gives you a headache. 阅读(3)如果VS2012让您头疼,我会使用VS2015 msbuild。

If you dont mind me asking - Why not switching to ASP.NET Core ? 如果您不介意我问-为什么不切换到ASP.NET Core?

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

相关问题 发布后事件不与msbuild.exe一起使用 - Post build event not working with msbuild.exe VS2019 MSBuild.exe-使用PublishProfile时ASP .Net MVC项目无法发布,但使用OutDir参数时可以使用 - VS2019 MSBuild.exe - ASP .Net MVC project fails to publish when using PublishProfile, but works when using OutDir parameter 无法成功启动或连接到子MSBuild.exe进程。验证MSBuild.exe - Failed to successfully launch or connect to a child MSBuild.exe process. Verify that the MSBuild.exe Azure 错误进程“msbuild.exe”退出,代码为“1” - Azure error Process 'msbuild.exe' exited with code '1' 使用MSBuild命令行保留属性 - Using MSBuild Command Line Reserved Properties 如何使用MSBuild命令行运行ASP.NET MVC应用程序 - How to run ASP.NET MVC app using MSBuild command line 如何在Visual Studio 2015中使用MSBuild在构建上部署ASP.NET MVC应用程序? - How to deploy an ASP.NET MVC application on build using MSBuild in Visual Studio 2015? msbuild 构建和发布 ASP.NET MVC 应用程序 - msbuild build and publish ASP.NET MVC application 在 Azure Devops Pipeline 中使用 MSBuild 构建和发布 MVC4 应用程序 - Build and Publish MVC4 application using MSBuild in Azure Devops Pipeline 在Windows Xp客户端上运行使用.NET 4.5开发的Web应用程序 - Running web application developed using .NET 4.5 on Windows Xp clients
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM