【问题标题】:What are the steps in resolving a DLL "could not resolve reference" issues解决 DLL“无法解决引用”问题的步骤是什么
【发布时间】:2016-10-11 18:11:01
【问题描述】:

我有一个sln。文件在本地机器上构建和运行。当我要在 TFS 服务器中构建 sln 时,我收到一个错误

无法解析此引用。找不到程序集“DataTables”(我指的是程序集)。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,则可能会出现编译错误。

我已尝试逐步解决此错误,这是我目前所做的:

  • 确保两者的目标框架相同

  • 确保有一个静态 dll 文件位置

  • 确保在 sln 中引用该文件并使用随附的 using 语句

下一个要研究的逻辑领域是什么?

我认为问题在于我第一次引用 dll 时它位于一个位置,并且我在现在的位置之前更改了几次 dll 文件位置,因为我将 dll 存储在桌面中并且不得不重新组织我的文件夹。

我在某处简要地读到,当本地构建能够运行时,可能是 sln 文件将原始 dll 保存到 bin 中,并在参考中列出的文件位置找不到 dll 时使用该副本部分。

我可以将这两个想法联系在一起,但我不知道如何获取 sln 文件以删除不再有效的 dll 文件位置的痕迹并使其开始使用正确的 dll 文件路径。

我可能错了,我可能忽略了不同的问题来源。

我是初学者,所以请注意可能存在误解,我可能在上面的部分中扼杀了一些概念。任何见解和建议将不胜感激。

【问题讨论】:

    标签: .net visual-studio dll tfs


    【解决方案1】:

    有人帮我构建了 sln。这些是我们用来更改文件引用并使其工作的步骤。 我们将 dll 放到 sln 文件中,然后通过卸载项目更改引用提示,然后右键单击“编辑”sln。

    在该界面中,我们更改了 xml 文件并更改了 sln 中的引用,现在它构建在 prod 中。服务器

    谢谢!希望这对其他人有帮助。

    附:我仍然想澄清一下出了什么问题(例如,提示文件路径长,和/或我可以做些什么来使参考工作,而不必将 dll 移动到 sln 文件中,以防万一不是一个选项在另一个时间出现这个问题。

    【讨论】:

    • 除非您使用 MSBuild 诊断日志记录来收集有关解决过程的更多数据,否则没有人会神奇地看到您的代码并告诉您原因。
    【解决方案2】:

    这就是为什么提示路径将文件引用到源代码控制之外的路径,因此当构建服务器提取代码时,它无法解析 C:\users[name]\desktop\ (或从那时引用的任何位置)在 BUILD 服务器上。

    “我认为问题在于我第一次引用 dll 时它位于一个位置,并且我在现在的位置之前更改了几次 dll 文件位置,因为我将 dll 存储在桌面中并且不得不重新组织我的文件夹。”

    【讨论】:

    • 我明白了,谢谢!我真的被这个难住了。真正让我感到困惑的是,我将 dll 文件拖放到与 sln 所在的文件夹相同的文件夹中。我曾假设构建服务器会检测到文件并从文件夹中提取它。这是一个角色构建错误/疑难解答,我从中得到了更多关于 sln 目录如何工作以及 bin 文件包含什么等的知识。生活就是旅程
    • 我看到人们一直这样做。要记住的重要一点是,只有位于构建定义中 SourceControlFolder 下的文件才会被拉入构建中,因此任何引用到不在该根目录下的东西的东西都不会出现在构建中。 GAC 引用是可以的(如果在服务器上安装了相同的引用),但其他任何东西都必须在下面并用相对提示路径引用。
    猜你喜欢
    • 2010-12-02
    • 2012-04-03
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 2022-11-02
    • 2014-03-19
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多