2013-01-10 50 views
21

每次我构建我的解决方案时,都会收到此错误消息;无法解析此参考。找不到组件

警告3无法解析该引用。找不到 程序集“StandardClassLibrary,Version = 1.0.0.0,Culture = neutral, processorArchitecture = MSIL”。检查以确保该组件存在于 磁盘上。如果您的代码需要此引用,则可能会收到 编译错误。 StandardClassLibrary

所以我的应用程序有多个项目,其中StandardClassLibrary是一个。上面的消息是一个警告,据我所知它不会影响我的解决方案。

但我宁愿它不会在那里,万一......

+1

写一个测试,将在组件测试的方法的功能。在启动时运行该测试,并确保所有结果都是预期的,只是可以肯定的(而不是你可以告诉的)。 – Kcvin

回答

37

你最有可能得到这个消息时,项目点,它不再存在组件的老位置。由于您可以构建一次,程序集已被复制到您的bin\Debug/bin\Release文件夹中,因此您的项目仍然可以找到副本。

如果您在解决方案资源管理器中打开项目的引用节点,则该引用旁应该有一个黄色图标。删除参考并从正确的位置重新添加。

如果您想知道它被引用的位置,您必须在文本编辑器中打开.csproj文件,并为该程序集查找HintPath - 由于某些原因,IDE不显示此信息。

+2

谢谢你。我检查了我的参考资料,他们都很好,没有黄色的图标。 – arame3333

+0

谢谢你的作品!我没有在引用黄色图标,但我从调试文件夹复制所有dll释放文件夹,现在它的作品。 – Muflix

+0

保存我的日子= D –

3

检查您的项目文件是否是只读的。通过右键单击项目文件夹并选择属性来删除只读属性。在属性屏幕上,移除只读复选框。我遇到了同样的问题,这为我解决了。

0

这让我困惑了一会儿,直到我发现解决方案中各个项目的依赖关系已经搞乱了。把它弄直,自然你的装配出现在正确的地方。

1

如果项目通过团队基础服务器与不同位置的相同库文件检出到不同的PC,则参考文件中将没有黄色图标标记,但是当更改为发布版本并构建项目时,会给出错误。就像@C.Evenhuis所说的那样,它会在之前的版本中使用旧版本(例如:Debug build),所以我没有注意到这个错误。

现在我知道把库文件放在不同PC上的不同位置是一个坏习惯。

只需要删除引用并从正确的位置重新添加相同的引用即可。

0

我在VS 2017中有相同的警告。事实证明,在我的情况下,我添加了一个单元测试项目,并需要为它正在测试的DLL上的单元测试设置依赖关系。

3

如果任何人都面临着一些的NuGet包这个问题,您可以修复通过重新安装使用程序包管理器控制台的包:

Update-Package -reinstall