2010-12-15 65 views
4

我有一个使用特定程序集的命令行应用程序。程序集位于项目的根目录,并设置为“始终复制”。为什么Visual Studio 2010一经构建就会忽略我的引用?

我添加了对该程序集的引用,并且Visual Studio 2010很高兴 - Intellisense正确地突出显示所有内容,并且没有错误报告。

但是,一旦我真正建立,我得到编译错误,像我没有添加引用,并且Intellisense突然给我红色的曲线,就好像从未添加引用。

但引用仍然存在。

如果我删除了引用然后重新添加它,Visual Studio会再次变得快乐,并且红色的曲线消失。然后我建立,同样的事情再次发生。

因此,Visual Studio同意引用在那里。直到我建立。然后它声称它不是。尽管如此。

这只发生在一个特定的DLL(NLog,如果它很重要)。另一个DLL(HtmlAgilityPack)正常工作,它的设置和配置方式完全相同。

回答

3

通过一些搜索,我发现.NET client profile存在问题。尝试查看该链接,看看它是否可以解决问题。

如果您有兴趣进一步阅读,还有一些帖子在microsoft connect website

+1

目标框架设置为“.Net Framework 4客户端配置文件”。我将它改为“.Net Framework 4”,它工作正常。不知道为什么这固定它,但它确实如此。谢谢。 – Deane 2010-12-15 16:26:10

+0

@Deane:很高兴听到这解决了你的问题。 NLog 1.0需要'System.Web'中的类不属于客户端配置文件。如果你不想依赖完整的Framework,你可以切换到NLog 2.0(它增加了对客户端配置文件的支持)或重新编译DLL,而不需要依赖'System.Web'的类。 – 2010-12-15 16:36:13