Почему Дженкинс не может найти этот раздел реестра.NET AssemblyFoldersEx?
Итак, у меня есть проект, который прекрасно работает на моей машине для разработки, но не на моем CI-сервере (Дженкинс).
Дженкинс не может найти мои основные сборки взаимодействия даже после того, как я скопировал с моего компьютера различные папки, чтобы сделать их доступными для него.
На моей машине, где все работает, я могу включить опцию моей Visual Studio для "диагностического" вывода уровня, и я могу видеть, как он выясняет, где находятся эти PIA...
Primary reference "Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Resolved file path is "C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll".
Reference found at search path location "{Registry:Software\Microsoft\.NETFramework,v4.6.1,AssemblyFoldersEx}".
Видите этот раздел реестра, указанный выше? Когда я захожу в свой реестр.. я могу найти ульи для:
- Software \ Microsoft \.NETFramework
- Software \ Wow6432Node \ Microsoft \.NETFramework
Каждый улей имеет несколько ключей, как
- v4.5.50709
- v3.5
- так далее...
Но нигде я не вижу ключ v4.6.1, который, кажется, указан в фрагменте вывода сборки, который я вставил выше. Если есть какой-то способ узнать это и / или лучший способ настроить Jenkins, чтобы он мог правильно ссылаться Microsoft.mshtml.dll
Я был бы очень благодарен.
1 ответ
После долгого и кропотливого поиска я обнаружил, что у меня есть несколько "PIA" redist.exe на моем компьютере разработчика в следующем месте:
C:/Program Files (x86)/Common Files/Merge Modules
У меня их несколько, поскольку на моей машине установлено несколько версий Visual Studio. Я уверен, что мне, вероятно, нужно было запустить только один из них. Несмотря на это, я дважды щелкнул каждый файл.exe (у меня было окно на моем CI-сервере, которое выводилось на мою рабочую станцию разработчика) и установил каждый на мой сервер Jenkins.
Задача решена!