2011-08-31 75 views
13

我正在使用MagicLibrary作为一些组件。我知道它是用Visual Studio 2003编写的,并在Visual C#Express 2010中重新编译它。它编译得很好,我可以在文件夹中看到该库。调试/构建时引用消失(C#,VB.NET,VS2010)

然后,我在Visual C#Express 2010中创建了一个新项目,并将组件MagicalLocalLibrary.dll添加到工具箱中。他们看起来很好,没有错误。我把工具箱的控制权交给了我的表格,看起来很好。然后我调试(查看是否会出现任何错误),我看到的是参考MagicalLibrary消失了,我得到了错误:

The type or namespace name 'Crownwood' could not be found (are you missing a using directive or an assembly reference?) 

的事情是,参考下在解决方案资源管理器中,但我可以参考表明细不会导入它与using或在代码中使用它(根本不在InstelliSense中列出),但如果我进入对象浏览器并选择“我的解决方案”,则不会列出它。我可以单击解决方案资源管理器中的引用,只需将“复制本地”属性更改为True或False,然后它将显示在对象浏览器中,但每当我再次调试项目时,它都会消失。

任何想法为什么这样做?提前致谢。

回答

22

检查您使用.NET框架4,而不是客户端配置版本

您发现该设置,当你在你的项目上单击右键,选择属性。在应用程序中有一个目标框架的设置。如果您选择了.Net 4框架客户端配置文件,那么您描述的这种行为可能发生

+0

谢谢Bassetassen--我总是忘记了!哦,你知道当你创建一个新项目时是否可以设置一个默认框架? – fnky

+0

@Humanoidism您的欢迎,自己多次做同样的事情。在这个[link](http://stackoverflow.com/q/4595212/797672)中有一些关于如何更改默认值的建议 – Bassetassen

+1

在VS2010中,Target Framework设置可以从Compile选项卡中找到,在另一个pop高级编译选项“按钮中的对话框。谢谢!我们在解决方案中有几个项目,它们之间的引用正在迷失。将目标框架设置为远离客户端配置文件解决了问题。 –

1

我遇到了一次非常类似的问题。在我的情况下,问题原来是“消失”命名空间程序集的缺失依赖。最终给我提供的信息是this StackOverflow答案,以提高MSBuild输出详细程度。提高详细设置后,IDE应该给出编译失败的更具体原因。