为什么 Jenkins 找不到这个 .NET AssemblyFoldersEx 注册表项?
Why can't Jenkins find this .NET AssemblyFoldersEx registry key?
所以我有一个项目可以在我的开发机器上正常构建,但不能在我的 CI 服务器 (Jenkins) 上构建。
Jenkins 找不到我的主要互操作程序集,即使我已经从我的机器上复制了各种文件夹以使其可用。
在我的机器上,一切正常,我可以打开 Visual Studio 的 "diagnostic" 级输出选项,我可以看到它如何确定这些 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 密钥。如果有什么方法可以发现这个 and/or,更好的方法来配置 Jenkins 以便它可以正确引用 Microsoft.mshtml.dll
我将非常感激。
经过漫长而艰苦的搜索,我发现我的开发者盒子上有一些 "PIA" redist.exe,位于以下位置:
C:/Program Files (x86)/Common Files/Merge Modules
我有几个,因为我的机器上安装了多个版本的 Visual Studio。我确定我可能只需要 运行 其中一个。无论如何,我双击了每个 .exe(我的 CI 服务器上有一个 window 正在达到峰值我的开发工作站)并将每个安装到我的 Jenkins 服务器上。
问题已解决!
所以我有一个项目可以在我的开发机器上正常构建,但不能在我的 CI 服务器 (Jenkins) 上构建。
Jenkins 找不到我的主要互操作程序集,即使我已经从我的机器上复制了各种文件夹以使其可用。
在我的机器上,一切正常,我可以打开 Visual Studio 的 "diagnostic" 级输出选项,我可以看到它如何确定这些 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 密钥。如果有什么方法可以发现这个 and/or,更好的方法来配置 Jenkins 以便它可以正确引用 Microsoft.mshtml.dll
我将非常感激。
经过漫长而艰苦的搜索,我发现我的开发者盒子上有一些 "PIA" redist.exe,位于以下位置:
C:/Program Files (x86)/Common Files/Merge Modules
我有几个,因为我的机器上安装了多个版本的 Visual Studio。我确定我可能只需要 运行 其中一个。无论如何,我双击了每个 .exe(我的 CI 服务器上有一个 window 正在达到峰值我的开发工作站)并将每个安装到我的 Jenkins 服务器上。
问题已解决!