我有一个c#解决方案与Visual Studio 2010中的几个项目。
一个是测试项目(我叫它“PrjTest”),另一个是Windows窗体应用程序项目(我叫它“PrjForm”)。PrjForm还引用了第三个项目,它能够成功地引用和使用该项目。
PrjForm引用了PrjTest,并且PrjForm有一个带有using语句的类:
using PrjTest;
Reference已正确添加
Using语句是正确的
拼写正确
成功构建了PrjTest
PrjForm几乎构建,但在使用PrjTest时中断;与错误行:
无法找到类型或名称空间名称'PrjTest'(您是否缺少using指令或程序集引用?)
我尝试了以下方法来解决这个问题:
删除Resharper(因为Resharper识别引用的项目没有问题,我认为它可能值得一试)
删除并重新添加了引用和using语句
重新创建PrjForm
PrjForm目前驻留在PrjTest文件夹中,我尝试将其移动到外部文件夹
将解决方案加载到另一台计算机上,使用vs2010的新副本
我已经做了功课,花了很长时间在网上寻找答案,但没有一个解决方案有用。
我还能试什么?
另一个可能导致此错误的原因是使用了使用新版本的. net构建的NuGet包。
原始错误:
frmTestPlanSelector.cs(11,7): error CS0246: The type or namespace name 'DatabaseManager'
could not be found (are you missing a using directive or an assembly reference?)
在日志里我发现了这个
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3275: The primary reference "[redacted]\DatabaseManager\bin\Release\DatabaseManager.dll" could not be resolved because it has an indirect dependency on the assembly "System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" which was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".
解决方案是重新安装NuGet包:
http://docs.nuget.org/docs/workflows/reinstalling-packages