调试/构建后引用消失 (C#,VB.NET,VS2010)

13

我正在使用 MagicLibrary 的一些组件。我知道它是用 Visual Studio 2003 写的,然后在 Visual C# Express 2010 中重新编译了它。编译很顺利,我可以在文件夹中看到库。

然后,我在 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导入它,也无法在代码中使用(IntelliSense中根本没有列出),但如果我进入对象浏览器并选择“我的解决方案”,则没有列出。我可以单击“解决方案资源管理器”中的引用,只需将“复制本地”属性更改为True或False,然后它就会出现在对象浏览器中,但每当我再次调试我的项目时,它就会消失。

有任何想法为什么会这样吗?先感谢您的帮助。

2个回答

23
检查您是否使用的是 .Net 4 框架而不是客户端框架版本。 您可以通过右键单击项目,选择属性,在应用程序下找到目标框架设置来进行检查。如果您选择了 .Net 4 框架客户端配置文件,则可能会发生您描述的行为。请注意保留原有的HTML标签格式。

谢谢你,Bassetassen - 我总是忘记那个!哦,你知道在创建新项目时是否可以设置默认框架吗? - fnky
@Humanoidism 没关系,我自己也做过很多次这样的事情。在这个链接中有一些关于如何更改默认设置的建议。 - Bassetassen
1
在VS2010中,目标框架设置可以在“编译”选项卡中找到,在“高级编译选项”按钮下方的另一个弹出对话框中。谢谢!我们的解决方案中有几个项目,它们之间的引用关系丢失了。将目标框架设置为非客户端配置文件版本解决了这个问题。 - AjV Jsy

2

我曾经遇到过非常相似的问题。在我的情况下,问题是“vanishing”命名空间的程序集缺少依赖项。最终给我所需信息的建议来自这个 StackOverflow 答案,建议提高 MSBuild 输出详细程度。提高详细程度后,IDE应该会给出更具体的编译失败原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接