Правильное расположение MSBuild.exe для сборки приложения .net 4.5 с помощью командной строки. - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть приложение asp.net web api, предназначенное для платформы 4.5.

Я пытаюсь создать образ докера для своего приложения.Для сборки приложения я могу использовать MSBuild.exe, доступный в C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe или C:\Program Files (x86)\MSBuild\14.0\Bin\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 "не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске."

Я могу создать свое приложение, используя местоположение 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.
  3. Чтобы построить приложение на контейнере, мне нужно указать SDK, который позволит мне создавать приложение.Какая версия SDK мне нужна для сборки приложения .net 4.5.

1 Ответ

0 голосов
/ 30 мая 2019

Я просматривал веб-страницу с подобным запросом сегодня и наткнулся на эту случайную ссылку на расширение Veracode , в котором приятно перечисляется разница.

Visual Studio 2017

Первые два пути ниже, содержащие Professional, различаются в зависимости от установленной версии 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Файлы (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 и докере, но постараюсь ответить на ваши вопросы:

  1. Я думаю, что разница объясняется выше.Проблема, с которой вы столкнулись, объясняется лучше здесь: Не найден импортированный проект Microsoft.WebApplications.targets Может быть, попробовать?
  2. Полагаться на https://dotnet.microsoft.com/download/visual-studio-sdks иhttps://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers похоже, что для .net 4.5 нет SDK, поскольку он включен в VS2012.Но любая более высокая версия должна построить ваш проект до 4.5.
  3. Чтение (3) Я бы использовал VS2015 msbuild, если VS2012 вызывает головную боль.

Если вы не возражаете, я спрашиваю -Почему бы не перейти на ASP.NET Core?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...