-1

去年一位前雇员将一个 Visual Studio 项目推送到我们的 GitBlit 存储库,但一旦我检查它并尝试编译它,它说

错误 51 找不到元数据文件 'D:\GIT\epimst\MSTDAO\bin\Debug\MSTDAO.dll' D:\GIT\epimst\EPIMST\CSC EPIMST

错误 47 元数据文件 'D:\GIT\epimst\EPIDAO\bin\Debug\EPIDAO.dll' 找不到 D:\GIT\epimst\epiapputils\CSC epiapputils

错误 48 找不到元数据文件 'D:\GIT\epimst\EPIDAO\bin\Debug\EPIDAO.dll' D:\GIT\epimst\MSTDAO\CSC MSTDAO

错误 50 找不到元数据文件 'D:\GIT\epimst\EPIDAO\bin\Debug\EPIDAO.dll' D:\GIT\epimst\EPIMST\CSC EPIMST

所以我的解决方案是从我们部署的软件中复制这些 DLL,然后简单地将它们复制回各自的目录中。这修复了“找不到计数”错误,但随后出现了许多未定义的代码错误。

看到这段代码在某些时候是如何工作的并且实时包仍然可以运行,我无法弄清楚代码被签入和最终被我签出之间出了什么问题。

不幸的是,我们无法联系到那个推送代码的员工,我花了几天时间阅读有关更改目标框架、输出选项、构建设置等的信息,但没有一个能解决依赖关系问题或缺少 DLL。

我们几乎可以肯定 DLL 来自同一版本,因为我们只发布了该软件的一个版本,但不知何故源代码不再有效。

4

1 回答 1

1

我注意到您列出的错误顺序不正确。这表明您犯了一个常见错误,这在新环境中提出解决方案时尤其重要:

  • 您正在阅读表格“错误列表”窗口,而不是编译器输出。

生成输出窗口与错误列表窗口的比较

这很糟糕,原因有两个:

  1. 编译器输出包含与编译相关的附加信息,并且通常与错误相关。但是所有非错误消息都会被 IDE 删除,并且不会出现在“错误列表”窗口中。

  2. 第一条消息是最重要的,因为后来的错误通常是前几条的副作用。

切换到“Output”窗口,确保设置为“Show output from: Build”,滚动到顶部,然后按出现的顺序开始处理错误。

最可能的可能性是编码人员忘记签入一个文件,导致该项目中其他文件使用该类的错误。然后由于该项目没有构建,所有依赖项目都找不到该项目或任何其他依赖项目中包含的任何内容,从而导致数百个错误。这在错误列表中确实很难理清,但是当您切换到实际的构建输出日志时就完全清楚了。

于 2015-04-22T19:14:13.533 回答