2011-01-26 104 views
10

语境:VS2010大会参考失败

我有我的解决方案,3个项目(C#,.NET 4.0):

  • Abc.Business(DLL项目)
  • Abc.Test (测试项目)
  • Abc.Ui(WPF项目)

  • Abc.Bu siness是我的商业逻辑。它包含实体,管理,服务等

  • Abc.TestAbc.Business项目参考,单元测试。他们工作得很好。
  • Abc.Ui有一个项目引用Abc.Business

Abc.Ui不能解决所有的using Abc.Business; 错误日志显示:

错误类型或命名空间名称'Business'不存在于命名空间'Abc'中(您是否缺少程序集引用?)c:\ Abc \ Abc.Ui \ ViewModels \ ClientViewModel.cs

此外,当我手动输入我的文件顶部的using时,Intelli-sense会显示“Abc.Business.etc ..”。所以Intelli-sense在参考文献中行走但是不会构建。

任何想法?

+0

你有没有清理你的解决方案,然后尝试构建?通常这有帮助。 – Bernard

+0

仔细查看解决方案资源管理器。那里的裁判是什么,它显示了什么图标? –

+0

@Bernard:有很多次.. –

回答

15

非常感谢GrhmHenk Holterman谁指出架构解决方案。事实上,这不是问题,但它使我找到它。问题是框​​架目标。默认情况下,Ui项目的目标是使用“客户端”配置文件的.NET 4.0 Framework。此配置文件不能引用非客户端配置文件。我发现在不够用的调试输出窗口中。 (我习惯在错误列表,而不是看)

这里显示什么错误:

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets( 1360,9):警告MSB3253:引用的程序集“C:\ Abc \ Abc.Business \ bin \ Debug \ Abc.Business.dll”无法解析,因为它依赖于“System.Web,Version = 4.0”。 0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“,它不在当前的目标框架”.NETFramework,Version = v4.0,Profile = Client“。请删除不在目标框架中的组件的引用,或考虑重新定位您的项目。

我将配置文件更改为普通(无)和BOOM一切正常。 Here's the MSDN page关于它

再次感谢您的时间家伙。

+1

我最近有这个,答案稍有不同。今天出现了同样的错误,这为我解决了这个问题。谢谢:) – dooburt

+1

谢谢你。花了2个小时寻找解决方案!差点濒临绝望 – matcheek

+0

真的很高兴帮助! –

0

您是否已将Abc.Business项目的参考添加到Abc.Ui项目中?您可以通过右键单击Abc.Ui中的References,选择Add Reference,然后转到Projects选项卡。并选择Abc.Business。

+0

是的Ui有一个商业项目参考。感谢提示。 –

3

如果两者之间存在不兼容性,我会预料会出现问题。

一些提示/想法:

  • 取出参考,并再次,添加它作为一个参考项目
  • 重建解决方案,并检查错误消息
  • 检查平台(版本)。也许UI是Client-platform,Biz层使用完整的平台。
4

当我们在配置管理器中出现不一致时,我遇到了类似这样的问题。 (通过Build菜单访问)。

我们有一些项目构建x86变体,一些构建x64变体,配置管理器为“任意CPU”和“混合处理器”提供“解决方案平台”。

我相信我们将我们的“业务”构建为x86库,我们的“UI”作为x64(反之亦然),这意味着它无法找到程序集(对于正确的体系结构)并给出错误你看到了,但是intelisense仍然在看它的源头。

我建议你看看你的项目平台和解决方案平台,并整理任何古怪的东西。

+0

你指出一个中间点。在我的配置管理器中,除了Abc.Ui之外,每个项目都在“任何CPU”上。我正在尝试不同的配置.. –