Jenkin Ms Build Ошибка точечного сетевого приложения - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь выполнить сборку ms для основного приложения dot net в jenkins.

См. Ниже шаги

  1. nuget restore AddressBroker.API.sln
  2. dotnet build geostan/Xome.Utility.GeoStanGeolocation.csproj
  3. msbuild AddressBrokerNetFramework.Api\\AddressBrokerNetFramework.Api.csproj /p:DeployOnBuild=true /p:PublishProfile=FolderPublish

я получаю следующую ошибку ниже

D:\Jenkins\XomeWidgets\feature\XDO-1003\w\sites\AddressBrokerIsolation\AddressBrokerNetFramework.Api\AddressBrokerNetFramework.Api.csproj" (default target) (1) ->
14:40:47    D:\Jenkins\XomeWidgets\feature\XDO-1003\w\sites\AddressBrokerIsolation\AddressBrokerNetFramework.Api\AddressBrokerNetFramework.Api.csproj(182,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

В jenkins после чтения онлайн я добавил еще один шаг для устранения ошибки пути msbuild, которую мне удалось выполнитьсборка напрямую из командной строки, но она все равно не работает, когда я запускаю конвейерсм. ниже, чтобы заставить его работать, потому что он работает из командной строки на сервере jenkins, см. ниже мои шаги конвейера.

                    bat '''cd sites\\AddressBrokerIsolation
                        nuget restore AddressBroker.API.sln
                        dotnet build geostan/Xome.Utility.GeoStanGeolocation.csproj     
                        %comspec% /k "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\Common7\\Tools\\VsDevCmd.bat"                       
                        msbuild AddressBrokerNetFramework.Api\\AddressBrokerNetFramework.Api.csproj /p:DeployOnBuild=true /p:PublishProfile=FolderPublish           
                        ''' 

1 Ответ

1 голос
/ 24 октября 2019

Вы можете попробовать , вызывая msbuild.exe напрямую вместо использования VsDevCmd.bat.

Go Jenkins -> Manage Jenkins -> Global Tool Configuration -> MSBuild, установите путь к msbuild: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe

Что касается полученной ошибки, на мой взгляд, есть две возможные причины:

1. В процессе сборки версия msbuild и VS распознаются как версия V12.0 (Visual Studio 2013). Установка пути msbuild напрямую, как я предлагаю выше, может решить эту проблему.

См. Обычное содержимое в файле проекта веб-приложения Asp.net (VS2017):

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Если $(VisualStudioVersion) распознается как 12.0, тогда $(VSToolsPath) будет $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0, тогда msbuild не найдет Microsoft.WebApplication.targets, который вызвал эту проблему.

2. Что-то сломанов вашем xx.csproj файле или проекте взято из VS2013. Проверьте, можете ли вы найти v12.0 в вашем файле enter code here xx.csproj.

Если этот проект создан VS2017, эта проблема больше не будет возникать после того, как вы установили правильный путь msbuild. Если этот проект создается в VS2013 один раз, вам необходимо обновить файл xx.csproj. Надеюсь, все выше помогает:)

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