程序集引用无法在我们的构建服务器上正确解析

2024-01-29

我们使用 VS2008 SP1 用 C# 进行编码。我们有一台运行 Team System Server 2008 的服务器,我们用它来进行源代码控制、任务等。server也是我们的构建机器团队建设。这已经运行了很长一段时间了。直到现在。我们得到这些错误信息当尝试构建我们的一个项目时参考 to one 外部装配(这种情况会通过 Team Build 以及物理登录并通过 Visual Studio 进行常规构建时发生):

C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets :警告 MSB3246:已解决的文件有一个 图像不好,没有元数据,或者是 否则无法访问。不能加载 文件或程序集'C:\程序 文件\Syncfusion\Essential Studio\7.1.0.21\Assemblies\3.5\Syncfusion.XlsIO.Base.dll' 或其依赖项之一。该模块 预计将包含一个集会 显现。

C:\程序 文件\MSBuild\Microsoft\VisualStudio\v9.0\ReportingServices\Microsoft.ReportingServices.targets(24,2): 错误 MSB4062: “Microsoft.Reporting.RdlCompile”任务 无法从程序集中加载 Microsoft.ReportViewer.Common, 版本=9.0.0.0,文化=中立, 公钥令牌=b03f5f7f11d50a3a。可以 不加载文件或程序集 '微软.ReportViewer.Common, 版本=9.0.0.0,文化=中立, PublicKeyToken=b03f5f7f11d50a3a' 或 它的依赖项之一。该模块 预计将包含一个集会 显现。确认 声明是正确的,并且 程序集及其所有依赖项是 可用的。

引用的组件 'Syncfusion.XlsIO.Base' 无法 成立。

这些错误针对具有一个有问题的程序集引用的一个项目。当我尝试构建整个解决方案时,当然会因为这个错误而出现更多错误。还有另外两个项目与其他程序集引用也存在相同的问题。我有一个 VS 似乎无法解析的引用程序集列表:

  • Microsoft.ReportViewer.Common
  • Microsoft.ReportViewer.WinForms
  • 同步融合.压缩.基础
  • Syncfusion.Core
  • Syncfusion.XlsIO.Base

Syncfusion 组件来自第 3 方组件包。另外两个与 Microsoft ReportViewer 组件相关。

这些引用是通过 .NET 选项卡中的“添加引用”窗口添加的,因此我认为这没有任何可疑之处。在程序集引用的属性窗口中,区域性、描述、路径、运行时版本或强名称中没有值。版本显示 0.0.0.0,已解决为 False。我想很明显 VS 无法解析引用。我的问题是为什么???我为这个问题绞尽脑汁。这只发生在服务器上,该解决方案在我的机器和我同事的机器上都构建得很好。装配参考属性在我们的机器上很好。

我努力了卸载 the 3rd 方组件(当然是在服务器上),然后再次重新安装。没有帮助。我尝试过了repair the VS2008安装。没有帮助。试图检索一个早期版本 from 源代码控制(我知道之前已经在服务器上构建过),并且我收到了相同的错误消息。我检查过文件权限,一切似乎都井然有序。我已经没有想法了......

我该如何解决这个问题?

2009 年 2 月 16 日更新:
我已经尝试过比较 ildasm 输出我的电脑和服务器上的 dll 的版本(请参阅我写的相关评论),并且在对我来说似乎是评论的一行中存在一个小差异。我必须承认我根本不明白为什么会有差异,所以也许有人可以向我解释一下?
我也尝试运行病毒扫描在服务器上。没有帮助。试着remove the 参考进而readd通过浏览到磁盘上的 dll 来实现。没用。

2009 年 3 月 17 日更新:
我找到了解决方案!罪魁祸首是Panda Antivirus 的 TruPrevent 模块。禁用模块后,一切正常! =)
我在以下人员的帮助下发现了这一点fuslogvw.exe http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.80%29.aspx以及它生成的日志。谷歌搜索结果,偶然发现这个博客条目。 http://msmvps.com/blogs/carlosq/archive/2007/03/23/the-strange-case-of-error-80131018-loading-a-visual-studio-add-in.aspx。希望这可以帮助其他人。


几乎可以肯定,问题是环境问题,与来源无关。

一些想法...

(i) 尝试禁用您的防病毒/反恶意软件工具 - 我见过这些工具(特别是趋势科技防病毒软件,出于某种原因)可以在扫描后(期间?)锁定 DLL 文件,从而干扰编译器。

(ii) 检查您的 PATH 环境变量。即使在现代,PATH 变量也用于解决一些问题 - 如果这被搞乱了(太长,最大长度为 2048 个字符 IIRC),那么事情可能会很奇怪。

(iii) 您已检查文件权限 - 您是否检查了注册表中的权限?例如,SyncFusion 在用户和机器配置单元中安装其许可证密钥 - 如果构建服务器无法读取其中之一,可能会导致问题。

祝你好运!

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

程序集引用无法在我们的构建服务器上正确解析 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s

随机推荐