Jenkins为什么找不到此.NET AssemblyFoldersEx注册表项? [英] Why can't Jenkins find this .NET AssemblyFoldersEx registry key?

查看:288
本文介绍了Jenkins为什么找不到此.NET AssemblyFoldersEx注册表项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我有一个可以在我的开发计算机上正常运行的项目,但不能在我的CI服务器(Jenkins)上正常构建.

So I have a project that builds fine on my development machine, but not on my CI server (Jenkins).

即使在我从机器上复制了多个文件夹以使其可用之后,詹金斯也找不到我的主要互操作程序集.

Jenkins can't find my Primary Interop Assemblies even after I've copied over various folders from my machine to make them available to it.

在机器上一切正常的机器上,我可以打开Visual Studio的诊断"级输出选项,并且可以看到它如何确定这些PIA的位置...

On my machine, where everything works, I can turn on my Visual Studio's option for "diagnostic"-level output, and I can see how it figures out where these PIA's are at...

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}".

看到上面提到的注册表项了吗?当我进入注册表时.可以找到荨麻疹:

See that registry key referenced above? When I go into my registry.. I can find hives for:

  • 软件\ Microsoft \ .NETFramework
  • 软件\ Wow6432Node \ Microsoft \ .NETFramework

每个配置单元都有几个键,例如

Each hive has several keys, like

  • v4.5.50709
  • v3.5
  • 等...

但是在上面粘贴的构建输出代码段中似​​乎看不到v4.6.1键.如果有某种方法可以发现此问题和/或更好的方法来配置Jenkins,以便它可以正确地引用Microsoft.mshtml.dll,我将倍感荣幸.

But nowhere do I see the v4.6.1 key that seems to be indicated in the build output snippet I've pasted above. If there's some way to discover this and/or, better way to configure Jenkins so it can properly reference Microsoft.mshtml.dll I'd be much obliged.

推荐答案

经过漫长而费力的搜索,我发现我的开发人员位于以下位置的一些"PIA" redist.exe:

After a long and laborious search, I found that I have some "PIA" redist.exe's on my developer box, at the following location:

C:/Program Files (x86)/Common Files/Merge Modules

由于我的计算机上安装了多个版本的Visual Studio,因此我有其中几个.我确定我可能只需要运行其中的一个.无论如何,我双击每个.exe(我的CI服务器上有一个窗口正在到达开发工作站,然后将其安装到我的Jenkins服务器上).

I have several of these, due to multiple versions of Visual Studio being installed on my machine. I'm sure I probably only needed to run one of them.. Regardless, I double-clicked each .exe (I had a window on my CI server that was peaking through to my dev workstation) and installed each onto my Jenkins server.

问题解决了!

这篇关于Jenkins为什么找不到此.NET AssemblyFoldersEx注册表项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆