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

时间:2018-12-26 20:24:29

标签: asp.net .net docker asp.net-web-api msbuild

我有针对4.5框架的asp.net Web API应用程序。

我正在尝试为我的应用程序创建一个docker映像。为了构建应用程序,我可以使用C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exeC:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe位置中可用的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“不是f 一声确认声明中的路径正确,并且 磁盘上存在一个文件。”

我可以使用C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe位置来构建我的应用程序。

问题:

  1. 这两个文件夹中的MsBuild.Exe有什么区别?
  2. 理想情况下,我认为使用C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe位置是正确的方法,因为它带有默认位置,并且我认为程序文件中的MSBuild是由于安装了Visual Studio而引起的。并且在我的构建服务器上,我将没有安装Visual Studio。
    1. 为了在容器上构建应用程序,我需要指定SDK,这将允许我构建应用程序。我需要构建.net 4.5应用程序的哪个版本的SDK。

1 个答案:

答案 0 :(得分:0)

我今天用类似的查询浏览网页,偶然发现了random link to a Veracode extension,它很好地列出了区别。

Visual Studio 2017

下面包含专业版的前两个路径根据您安装的Visual Studio版本而有所不同。在适当的情况下,将Professional替换为Enterprise或Community。

注意:Visual Studio Preview安装还会根据Enterprise,Professional或Community更改路径。

  • 标准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 \ amd64 \

  • Visual Studio预览路径

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

  • 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 \ amd64 \

Visual Studio 2015

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

Visual Studio 2013

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

Visual Studio 2012

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


似乎您同时安装了VS2012和VS2015。 我对ASP.NET和docker知之甚少,但会尝试回答您的问题:

  1. 我认为上面已经解释了区别。 您在此处遇到的问题在这里得到了更好的解释: The imported project Microsoft.WebApplications.targets was not found也许可以试一试?
  2. 依靠https://dotnet.microsoft.com/download/visual-studio-sdkshttps://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers似乎没有.net 4.5的SDK,因为它包含在VS2012中。但是任何更高版本的工具都应该将您的项目构建为4.5。
  3. 阅读(3)如果VS2012会让您头疼,我会使用VS2015 msbuild。

如果您不介意我问-为什么不切换到ASP.NET Core?