上下文:
我的解决方案中有3个项目(C#,. NET 4.0):
Abc.Ui(Wpf项目)
Abc.Business 是我的商业逻辑。它包含实体,经理,服务等。
Abc.Ui无法解析所有using Abc.Business;
错误日志显示:
错误命名空间'Abc'中不存在类型或命名空间名称'Business'(您是否缺少程序集引用?)c:\ Abc \ Abc.Ui \ ViewModels \ ClientViewModel.cs
此外,当我在文件顶部手动输入using
时,Intelli-sense会显示“ Abc.Business.etc .. ”。所以Intelli-sense走在引用中但是没有构建。
有什么想法吗?
答案 0 :(得分:15)
非常感谢Grhm和Henk Holterman指出我的架构解决方案。实际上,这不是问题,但它让我找到它。问题是框架目标。默认情况下,Ui项目使用“客户端”配置文件定位到.NET 4.0 Framework。此配置文件无法引用非客户端配置文件。我发现在使用不充分的Debug Output Window中。 (我习惯于查看错误列表)
以下是显示的错误:
c:\ Windows \ Microsoft.NET \ Framework \ 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,个人资料=客户端强>”。请删除不在目标框架中的程序集的引用,或考虑重新定位项目。
我将配置文件更改为正常(无),BOOM一切正常。Here's the MSDN page关于它
再次感谢您的时间。
答案 1 :(得分:4)
当我们在配置管理器中出现不一致时,我遇到过类似的问题。 (通过Build菜单访问)。
我们有一些构建x86变体的项目,一些构建x64变体,配置管理器为“Any CPU”和“Mixed Processingors”提供了“解决方案平台”。
我相信我们将“Business”构建为x86库,将我们的“UI”构建为x64(反之亦然),这意味着它无法找到程序集(针对正确的架构)并给出了错误我看到了,但是知识分子仍然在寻找源头。
我建议您查看您的项目平台和解决方案平台,并整理任何奇怪的内容。
答案 2 :(得分:3)
如果两者之间存在不兼容,我会发现问题。
一些提示/想法:
答案 3 :(得分:0)
您是否已将Abc.Business项目的参考添加到Abc.Ui项目?您可以通过右键单击Abc.Ui中的References,选择Add Reference,然后转到Projects选项卡来实现。并选择Abc.Business。