去年一位前雇员将一个 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 来自同一版本,因为我们只发布了该软件的一个版本,但不知何故源代码不再有效。