确定对不正确的 .NET Framework 版本的间接依赖的来源

2024-03-08

我想知道如何确定此构建错误的来源;

Warning 4   The primary reference "MyNamespace.MyProject" could not be resolved because 
   it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0,
   Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than
   the version "2.0.0.0" in the current target framework.   MyNamespace.MyOtherProject

我理解这个错误的含义(以及同一个项目中的其他 5 个错误),但我无法弄清楚如何在我的情况下解决它。本例中的“主要引用”(MyNamespace.MyProject) 对 .NET 4.0.x 没有直接依赖关系。

主要参考仅依赖于我的另一个项目 (MyNamespace.MyCoreProject),构建的源项目 (MyNamespace.MyOtherProject) 也直接依赖于该项目。并且构建并没有抱怨that项目间接引用 .NET 4.0.x,所以我认为我可以排除这种情况。

主要参考直接依赖于三 (3) 个第 3 方 DLL,所有这些也都以 .NET 2.0 为目标。

我使用 dotPeek 来检查构建的库,但看不到任何使用 .NET 4.0 的引用。

工作中唯一的其他潜在扳手是使用 PostSharp,它由“MyNamespace.MyCoreProject”(由主要参考项目引用)直接引用,这可能会导致问题,因为我相信在以下情况下存在相关的 VS2010 错误引用PostSharp.dll(http://www.sharpcrafters.com/forum/Topic4444-4-1.aspx#bm4462),但是我也从构建链中删除了它并且仍然看到这个错误,所以我认为我也可以规则that out.

如果有人能告诉我为什么会发生这种情况,那就太棒了!如果没有,关于如何计算出未命名的“间接引用”是什么的一些指导也会同样有帮助!

顺便说一句,我已经尝试了以下所有工具来获取一些信息,但它们并没有告诉我太多我不知道的信息(这是相关 DLL 的直接依赖项); - .NET 反射器 - 点窥视 - IldAsm - 取决于(依赖行者)


虽然我实际上还没有找到一个好的方法来真正解决确定 MsBuild 如何确定它使用的引用的问题(为什么它不只是告诉我它是如何得出这些间接引用的,而不是让我猜测我不知道)知道我have解决了我的问题。

最后,我基本上删除了“主要引用”项目中的所有引用(这需要逐段排除所有代码 - 这是一个有点痛苦的过程),以确定对 .NET 4.0 库的假定间接引用的来源是由引用的第 3 方 DLL。

然而,我确实相信这个问题背后的 MsBuild 存在一个错误,如下:

  1. 第 3 方 DLL 通过“浏览”引用到我的计算机上的特定 DLL 文件 - 该文件非常明确地仅依赖于 .NET 2.0
  2. 在构建中将“特定版本”设置为 true 并不能解决此问题
  3. MsBuild 似乎正在向 GAC 寻求帮助不同版本该 DLL 并导致不正确的引用错误。

现在,另一个好奇心是,我有一段时间没有接触或更改相关的库了,所以这只是因为其他一些不相关的原因而开始发生 - 那可能是什么,我不知道。

最后,我发现解决这个问题的唯一方法是运行gacutil /u对于每个相关库,删除以前安装/使用的 4.0 库版本。 (软件包中大约有 40 个库,所以这也很痛苦!因为软件包的卸载程序没有删除 GAC 中的库)

这似乎让 msbuild 开始使用我告诉它的引用,而不是提出自己的“使用这个文件”和“使用这个”的想法具体版本 means.

解决了,但我希望有一种更干净的方法来做到这一点!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定对不正确的 .NET Framework 版本的间接依赖的来源 的相关文章

随机推荐

  • 关于如何使用R和ggplot2绘制背对背图的问题

    我的目标是绘制一个金字塔图 如所附的那样 我找到了几个使用 ggplot 的示例 但我仍然在努力将我的示例应用于我的数据 或我想要绘制的数据 structure list serial c 40051004 16160610 1609031
  • Centos 无法安装 mysqli

    我无法安装Mysqli 我正在使用 Centos 6 apache 2 2 x 和 php 5 4 MySql 5 5 37 cll I tried yum install php pdo php mysqli 我看到 Loaded plu
  • 使用批处理文件发送电子邮件

    我的 Outlook 配置了我的办公室 ID 并且对批处理脚本非常陌生 通过批处理文件向我的同事发送电子邮件的最简单的方法 最简单的代码 是什么 thanks 我可以为你看到 3 个选项 最重要的是 批处理没有内置方法 但有可以从批处理文件
  • 检查优惠券是否应用于 WooCommerce 中的购物车

    我需要找到一种方法来检查优惠券是否适用于 WooCommerce 结帐 如果是这样 我想做点什么 我尝试四处寻找这个问题 但找不到解决方案 这是我正在尝试的精简版本 add action woocommerce before cart ta
  • 自定义 Clipper 贝塞尔曲线 Flutter

    我目前无法绘制贝塞尔曲线 The output I have right now is The output that I need is 我应该在此处添加什么作为贝塞尔值来获得曲线 自定义剪辑器的代码片段是 class OnBoardin
  • 链接到电子邮件附件

    您好 我正在发送电子邮件附件 使用 php 并想向我向其发送电子邮件的人指出有附件 我想通过在电子邮件的 html 正文中显示一个链接来实现此目的 因此他们所需要做的就是单击该链接 系统将尝试打开 查看附件 有谁知道这是否可能 如果是这样
  • 如何在 Tkinter 中通过一个“绑定”绑定多个小部件?

    我想知道如何用一个 绑定 绑定多个小部件 例如 我有三个按钮 我想在悬停后更改它们的颜色 from Tkinter import def SetColor event event widget config bg red return de
  • 检索客户端的 PC 名称? (Windows 身份验证)

    我有一个在内部网络上运行的 ASP net 应用程序 实际上它在 Sharepoint 2007 上运行 我只是好奇 我可以以某种方式检索客户端正在使用的 PC 的名称吗 如果有帮助的话 我可以访问 Active Directory 问题是
  • Safari 上的 CSS 翻译问题

    我正在努力将我制作的 Gif 转换为 CSS 动画 在 Chrome Firefox Opera 上一切正常 但在 Safari 上却出现问题 当我最初加载页面时 图像会忽略翻译并位于下方 但是一旦我单击 Safari 选项卡并返回 页面就
  • 将列列表作为向量传递给 data.table 的 CJ

    我有以下代码 main cols lt c num let dt lt data table num 1 5 let letters 1 5 dt new dt lt dt CJ num num let let unique TRUE on
  • 如何防止 XNA 组件在离屏时绘制?

    我正在 XNA 中制作 2d 游戏 使用可绘制游戏组件时 哪一个性能更好 1 当组件不在屏幕上时 将其从组件列表中删除 当组件在屏幕上时 将其添加 2 当其离屏时 不运行其绘制函数 通过使用 awake 布尔字段和 if 语句围绕绘图函数中
  • 测量服务器请求后 JSF 视图的呈现时间

    我想测量 JSF 应用程序的渲染时间 由于我的权力原因 应用程序无法填充日志 因此 我的问题是 有什么方法可以在使用任何浏览器执行包括后端 服务器 调用的特定操作后测量应用程序的渲染时间 到目前为止 在使用 Chrome 开发者工具后 我发
  • 如何从QVariant获取原始python数据

    这几天正在学习python和Qt 所以请考虑这将是一个新手问题 但我被困在这里 import sys from PyQt4 QtCore import data1 string data2 QVariant data1 data3 data
  • DirectUI 的真相是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个 Windows 桌面应用程序 它需要一个很棒的 UI 我现在使用Visual Studio和MFC 后来听说DirectU
  • 如何获取 MySQL 数据库的最后访问(和/或写入)时间?

    如何查明 MySQL 数据库上次读取或写入的时间 您甚至可以对每张桌子进行检查吗 SELECT UPDATE TIME FROM INFORMATION SCHEMA TABLES WHERE TABLE SCHEMA dbname AND
  • 托管和非托管 C++/MFC 可以混合在一个 dll 中吗?

    以前 我们有 MFC VC6 VB6 和 C 应用程序中的软件 需要调用用 C 和 MFC 编写的相同引擎 该引擎需要 C 来提高速度 当时我们决定使用 COM 作为接口 因为所有三个都可以使用它 并且在编组等方面的问题最少 我们的 MFC
  • 在 SQL Server 中存储图像?

    我制作了一个小型演示网站 并在其上将图像存储在 sql 服务器上的图像列中 我有几个问题是 这是一个坏主意吗 当我的网站增长时 它会影响性能吗 另一种方法是将图像存储在光盘上 并且仅将图像的引用存储在数据库中 这想必是很多人都曾遇到过的共同
  • 使用 docker-compose 将 Gitlab CI/CD 转至 Digital Ocean 以实现多个存储库

    目前我在 Gitlab 中有一个项目 repo 它是一个角度应用程序 我使用 Gitlab CI CD 来构建 测试 发布和部署 发布将构建一个新的 docker 镜像 将其推送到 Gitlab 注册表 然后将其部署到我的 Digital
  • 有人对以这种方式使用黑板模式有想法吗?

    有人对 实用程序员 第 165 页中的 Blackboard 概念有什么想法吗 我想要几个彼此独立的小子系统 DLL 和 EXE 有一些程序集将被所有 EXE 使用 这些程序集几乎都使用相同的数据库 Blackboard 类型模式不是使用接
  • 确定对不正确的 .NET Framework 版本的间接依赖的来源

    我想知道如何确定此构建错误的来源 Warning 4 The primary reference MyNamespace MyProject could not be resolved because it has an indirect