【问题标题】:CSC : error CS0009: Metadata file '.....\v8-x64.dll' could not be opened -- PE image doesn't contain managed metadataCSC:错误 CS0009:无法打开元数据文件 '.....\v8-x64.dll' -- PE 映像不包含托管元数据
【发布时间】:2017-07-06 09:14:23
【问题描述】:

在我们将目标框架从 .NET v4.5.1 更新到 v4.5.2 后,我们在 Jenkins 服务器上遇到了这个错误:

在构建输出中,我们还有如下警告:

(GetReferenceAssemblyPaths 目标)-> C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1097,5): 警告 MSB3644:框架的参考程序集 未找到“.NETFramework,Version=v4.5.2”。为了解决这个问题, 为此框架版本安装 SDK 或 Targeting Pack,或 将您的应用程序重新定位到您所针对的框架版本 已安装 SDK 或 Targeting Pack。请注意,程序集将是 从全局程序集缓存 (GAC) 中解析,并将用于 参考组件的位置。因此您的程序集可能不是 正确定位到您想要的框架。

当我们尝试删除 ClearScriptV8-32.dllClearScriptV8-64.dllv8-ia32.dllv8-x64.dll 时,它正在编译没有问题,但不幸的是,当我们在解决方案中使用它们时,网站没有加载。

【问题讨论】:

    标签: c# jenkins msbuild


    【解决方案1】:

    在 Jenkins 服务器上安装 .NET v.4.5.2(链接 here)解决了这个问题。

    但是如果 SDK 安装程序向您提供无法安装 v4.5.2 的信息,因为已经存在较新的版本,您可以将其从存在的另一台机器复制粘贴到 c\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2

    更多信息: 问题是在 Jenkins 服务器上我们没有 .NET v4.5.2 但我们有 .NET v.4.6。 由于 v.4.6 声称与 4.5.2 兼容,因此 msbuild 正在使用它并给出问题中提到的警告,最后 CSC 无法打开 v8 Dlls。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 2015-11-22
      • 2018-11-14
      • 2018-11-26
      • 2017-10-28
      • 2021-02-03
      • 2021-10-15
      相关资源
      最近更新 更多