Как скомпилировать моё решение на c # с помощью msbuild из командной строки - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть решение ac # (с открытым исходным кодом, доступно здесь: https://github.com/tzachshabtay/MonoAGS), которое я могу прекрасно скомпилировать из Visual Studio 2017 (Dot Net Framework) и из VS для Mac (Mono). Я также могу скомпилировать его с помощью msbuild на Travis CI успешно как на Linux, так и на Mac (https://github.com/tzachshabtay/MonoAGS/blob/master/.travis.yml).

Что я не могу сделать, так это скомпилировать его в командной строке из Windows 10 на моем локальном компьютере. Я хотел бы иметь возможность скомпилировать его как для DotNet Framework, так и для Mono. Поэтому я попытался использовать MSBuild как из моно-установки, так и из Build Tools for Visual Studio 2017 (примечание: я хочу иметь возможность установки на windows, даже если vs2017 не установлен, хотя на локальной машине установлен vs2017, не знаю, если он установлен вопросы). Обе установки для последних версий на сегодня.

Это ошибка, которую я получаю из msbuild на моно (PATH было установлено на %programfiles(x86)%\Mono\bin):

Проект "C: \ Github \ MonoAGS \ MonoAGS.sln" (1) создает "C: \ Github \ MonoAGS \ Source \ Tests \ Tests.csproj" (2) на узле 1 (цели по умолчанию). Проект "C: \ Github \ MonoAGS \ Source \ Tests \ Tests.csproj" (2) строит "C: \ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj" (3) на узле 1 (цель (и) GetTargetFrameworks). C: \ Program Files \ dotnet \ sdk \ 2.1.4 \ Sdks \ Microsoft.NET.Sdk \ Sdk \ Sdk.props (29,11): ошибка MSB4226: импортированный проект "C: \ Программные файлы (x86) \ MSBuild \ 15.0 \ Microsoft.Common.props "не найдены. Также попытался найти" 15.0 \ Microsoft.Common.prop s "в резервных путях поиска для $ (MSBuildExtensionsPath) -" C: \ Program Files (x86) \ MSBuild ". Эти пути поиска определены в "C: \ Program Files \ Mono \ lib \ mono \ msbuild \ 15.0 \ bin \ MSBuild.dll.config". Убедитесь, что путь в объявлении правильный, и что файл существует на диске в одном из путей поиска. [C: \ Github \ MonoAGS \ Source \ АГС. 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) строит "C: \ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj" (3) на узле 1 (Цель (и) GetTargetFrameworks). C: \ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj: ошибка MSB4247: не удалось загрузить Resolver SDK. Файл манифеста существует, но путь к файлу DLL SDK Resolver не найден. Путь к файлу манифеста '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 Ионы \ Microsoft \ NuGet \ Microsoft.Build.NuGetSdkResolver.dll

Что касается моно-ошибки, папка MSBuild\15.0 существует, но Microsoft.Common.props там нет (и я не мог найти ее где-либо еще на этой машине).

Что касается ошибки инструментов сборки, папка CommonExtensions существует, но в ней нет папки Microsoft.

Я пробую команду: msbuild /p:Configuration=DEBUG /p:Platform="Any CPU" MonoAGS.sln

Почему это не работает? Что мне не хватает? Спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Как скомпилировать моё решение на c # с помощью msbuild из командной строки

Для ошибки инструментов сборки необходимо установить компонент Диспетчер пакетов NuGet от установщика Visual Studio:

enter image description here

Когда мы используем инструмент сборки Visual Studio для сборки нашего проекта, нам также необходимо установить некоторые необходимые компоненты для нашего проекта.

Для моно-ошибки, поскольку у меня нет моно-ENV, я не мог указать прямую причину этой ошибки, если возможно, вы можете попробовать установить Mono framework . Если это не помогает, вы можете открыть новый поток с тегами mono и msbuild.

Обновление:

Как мне установить его с помощью командной строки, кстати (для настройки скрипта)?

Да, вы можете использовать vs_buildtools.exe для установки идентификатора компонента 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 для получения дополнительной информации.

Надеюсь, это поможет.

...