我有一个带有网站项目和 C# 库的 C# 解决方案。编译解决方案时,网站给出消息:
无法获取项目引用“MyLibrary”的依赖项。
这不会停止 wbsite 的编译和运行,直到我尝试使用 TFS 构建构建它,当此错误消息使构建失败时。
这是什么意思,我怎样才能绕过它?
在尝试了很多事情之后,我意识到了一些事情。无论我做了什么来清除构建等,错误都不会消失。我关闭并重新打开解决方案,它就消失了。
当您收到错误消息“无法获取项目引用的依赖项”时,可能的原因之一可能是您在解决方案中引用了另一个项目,该项目的目标框架与引用项目的目标框架不兼容。
您可以通过转到项目属性并选择左侧的应用程序选项卡来查看为项目指定的目标框架。
我写这篇文章是因为它发生在我身上,我从一个目标框架 3.5 的项目中引用了一个目标框架 4.0 的项目。
在记事本中打开网站项目文件并检查参考等...可以提供帮助
在我的例子中,被引用的项目是在 VS 2010 上创建的,而被引用的项目是 VS 2008 解决方案。在这种情况下,只需使用记事本编辑 vs 2010 项目,并将 ToolsVersion="4.0" 更改为 ToolsVersion="3.5"
查看您的参考资料。确保您拥有正确的 MyLibrary 项目参考路径。
我会尝试删除它并添加它。然后我会选择重建解决方案而不是构建,因为重建会删除所有 .dll 并重建它们。
如果通过“TFS 构建”表示您正在使用单独的构建服务器,那么您可以尝试检查构建服务器正在使用的构建配置。
例如,当您在本地计算机上构建时,您的目标可能是调试配置,而构建服务器使用的是发布配置。
在每个构建配置中,您可以确保选择“MyLibrary”项目进行构建。
这是 VS SDK 中的一个官方错误:
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=276380
我打开了这个,在那里我可以看到以下内容: Von Microsoft am09.05.2007 um 19:05 bereitgestellt
感谢您的反馈意见。我们已经在 Visual Studio 2005 SP1 上重现了这个错误,并且我们正在将此错误发送给 VisualStudio 产品团队中的适当小组,以进行分类和解决。
谢谢你,Visual Studio 产品团队。
我认为网站项目仍然存在这个错误,是的;我们使用 VS 20102 Ultimate。我的虚拟目录下的 \APP_CODE 中有一个应用程序,我有 2 个源代码为 C# 的 DLL,我有 3 个 DLL,其中源代码是来自 RemObjects 的 Oxygene、OXygene (PASCAL)。我只看到用 PASCAL 编写的 DLL 的这个参考;但是当我从测试应用程序测试这 3 个 DLL 时,一切都很好,我的测试应用程序绝对没有问题引用这 3 个 DLL 中的任何类或变量。那么在 VS 输出窗口中导致以下错误字符串的编译/构建可能有什么区别。正如多次描述的那样,永远不会消失的错误。
无法获取项目引用“工具箱”的依赖项无法获取项目引用“IMPLEM”的依赖项无法获取项目引用“LEGACY”的依赖项验证网站
如果您在清理和重建解决方案之后一直遇到这个问题,那么这意味着任何引用的项目都有问题。在编译过程中检查输出窗口是否有任何警告。纠正警告,它可以帮助您成功编译。
“清洁解决方案”无能为力,有时您需要从网站项目(Bin 文件夹)中手动删除 DLL。删除 DLL 并再次构建解决方案。
在我的情况下,我在解决方案中删除了 .NET 4.6 更新的程序集,其中一个项目恰好设置为 .NET 4.5,要么降级程序集,要么将项目升级到 4.6 修复它。
我刚刚删除了网站项目并将其再次添加到解决方案中。但是,我注意到它packages.config
是随后创建的。此配置文件以前不存在。
无法获取项目引用“X”的依赖项
出现此错误的原因有很多,并且 VisualStudio 错误窗口中显示的错误消息不准确。因此混乱。
一般原因:项目“X”引用:项目 X 引用的项目/DLL 之一不工作或不兼容。
故障排除提示
希望这有助于节省开发时间。
尝试检查项目的配置。我注意到将其更改为“任何 CPU”都可以。