Я создаю проект, который требует установки Azure SDK.К сожалению, я не могу установить SDK, потому что установщик VSTools не работает в контейнере Docker.Я пытаюсь воссоздать шаги, которые делает установщик, чтобы проект считал, что SDK установлен правильно.Я получаю сообщение об ошибке:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Microsoft \ VisualStudio \ v15.0 \ Windows Azure Tools \ 2.9 \ Microsoft.WindowsAzure.targets (1093,5): ошибка: WAT080: не удалось найти Microsoft Azure SDK.Пожалуйста, убедитесь, что Microsoft Azure SDK v2.9 установлен.[C: \ BuildAgent \ work \ da35ef67e7dea9a9 \ EMCloudService \ EMCloudService.ccproj]
Строка 1093 в файле .targets
:
<Target
Name="VerifySDKInstallation"> // <---- Line 1093
<WATMessage Condition=" !Exists('$(ServiceHostingSDKInstallDir)') or
!Exists('$(ServiceHostingSDKBinDir)') or
!Exists('$(ServiceHostingSDKTaskPath)') "
Type="Error"
Code="WAT080"
Arguments="$(ActiveAzureSdkVersion)" />
<WATMessage Condition=" !Exists('$(AzureClientLibInstallDir)') or
!Exists('$(AzureClientLibToolsRefDir)') or
!Exists('$(StorageClientAssemblyFullPath)') "
Type="Error"
Code="WAT081"
Arguments="$(ActiveAzureClientLibVersion)" />
</Target>
Итак, похоже, ошибкапотому что один из этих трех путей не существует.Первый из них выглядит следующим образом:
<ServiceHostingSDKInstallDir Condition=" '$(ServiceHostingSDKInstallDir)' == '' ">$([MSBuild]::GetRegistryValueFromView('$(ServiceHostingSDKRegistryKey)', 'InstallPath', null, RegistryView.Registry32))</ServiceHostingSDKInstallDir>
Итак, в основном это выглядит в реестре.Я скопировал это значение с рабочей машины, и оно имеет значение «C: \ Program Files \ Microsoft SDKs \ Azure.NET SDK \»
Я скопировал этот каталог поверх.Следующим является ServiceHostingSDKBinDir, который определен как:
<ServiceHostingSDKBinDir Condition=" '$(ServiceHostingSDKBinDir)' == '' ">$(ServiceHostingSDKInstallDir)bin\</ServiceHostingSDKBinDir>
Так что все должно быть в порядке, так как ServiceHostingSDKInstallDir существует.И, наконец, ServiceHostingSDKTaskPath, то есть:
<ServiceHostingSDKTaskPath Condition=" '$(ServiceHostingSDKTaskPath)' == '' ">$(ServiceHostingSDKBinDir)Microsoft.ServiceHosting.Tools.MSBuildTasks.dll</ServiceHostingSDKTaskPath>
Так что, похоже, мне просто нужно иметь возможность скопировать в каталог "C: \ Program Files \ Microsoft SDKs \ Azure.NET SDK \", передатьв правильных параметрах для ActiveAzureSdkVersion и ServiceHostingSDKInstallDir, и все должно работать:
msbuild EM.sln `
/p:ActiveAzureSdkVersion="2.9" `
/p:ServiceHostingSDKInstallDir="C:/Program Files/Microsoft SDKs/Azure/.NET SDK/"
Тем не менее, я все еще получаю ту же ошибку.Может кто-нибудь придумать что-нибудь еще, что мне нужно скопировать или передать?Спасибо!