Сборка выполнена успешно с проектами Ctrl + Shift + B, которые MSBuild не может собрать
Кто-нибудь знает, где я могу посмотреть на мой проект, если после того, как я сделаю сборку с MSBuild через консоль MSBuild, я получу это предупреждение:
MSB4078: Файл проекта 'MyProject.csproj' не поддерживается MSBuild и не может быть собран?
Мой проект работает с Target Framework .Net Core 2.0. Используемая версия MSBuild - 14.0.25420.1.
Это cs.proj
3 ответа
Пожалуйста, проверьте, какую версию MSBuild вы используете. Я тестировал с версией 15.0, она работает без ошибок.
Как правило, убедитесь, что вы настроили агент сборки для своего командного проекта, и что на компьютере агента установлена Visual Studio 2017, а также установлено последнее обновление Visual Studio.
Также убедитесь, что вы выбрали MSbuild версии 15.0 для сборки.
Подробнее см. В разделе " Сборка приложения ASP.NET Core".
Ссылка на эту тему: Поддержка.NET Core .csproj файлов
Вы используете новый формат файла csproj (см. Project sdk=...
)
Вам нужно будет использовать MSBuild 15 для его сборки. У вас есть два варианта:
1) Загрузите инструменты сборки для Visual Studio 2017 и установите. Тогда путь будет:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin
2) Если у вас установлена VS, путь будет:
C:\Program Files (x86)\Microsoft Visual Studio\2017\<VS Version>\MSBuild\15.0\Bin
Использование MSBuild 15 должно исправить ошибку.
Я предлагаю использовать MSBuild более надежным способом.
Загрузите инструменты сборки для Visual Studio 2017 со страницы загрузок Visual Studio, включая последнюю версию MSBuild 15.* ( прямая ссылка).
Аргументы командной строки, задокументированные здесь: Используйте параметры командной строки для установки Visual Studio 2017.
Все рабочие нагрузки и компоненты перечислены здесь: Каталог компонентов Visual Studio Build Tools 2017.
Использовать модуль PowerShell
VSSetup
найти MSBuild. Загрузите его или установите здесь: Github: модуль установки Microsoft/Visual Studio PowerShell
Найти MS Build
Import-Module $PSScriptRoot\VSSetup\VSSetup.psd1
$msBuildPath = (Get-VSSetupInstance | Select-VSSetupInstance -Version 15.0 -Product Microsoft.VisualStudio.Product.BuildTools).InstallationPath
if ([System.IntPtr]::Size -eq 8)
{
$global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin\amd64'
}
else
{
$global:msbuildPath = Join-Path $msBuildPath 'MSBuild\15.0\Bin'
}
Write-Output "Using MSBuild from $global:msbuildPath"
Write-Output "MSBuild /version"
$msbuild = Join-Path $global:msbuildPath msbuild
& $msbuild /version