5

我的 C# 解决方案中有 5 个项目。

  1. 常见的
  2. 数据访问。
  3. 用户界面
  4. 组件
  5. 测试

我可以添加对 Components.dll 的引用。但是,当我运行解决方案时,我得到了错误:

类型或命名空间名称“组件”不存在。

Components.dll存在于引用文件夹中。

你能帮帮我吗?

这是构建输出:

------ Rebuild All started: Project: Comps, Configuration: Release Any CPU ------
  Comps -> ..\Ashyaneh\Comps\bin\Release\AshyanehComps.dll
------ Rebuild All started: Project: Interfaces, Configuration: Debug Any CPU ------
  Interfaces -> ..\Ashyaneh\Interfaces\bin\Debug\AshyanehInterfaces.dll
------ Rebuild All started: Project: Common, Configuration: Debug Any CPU ------
  Common -> ..\Ashyaneh\Common\bin\Debug\AshyanehCommon.dll
------ Rebuild All started: Project: Web, Configuration: Debug Any CPU ------
  Web -> E:\My Programming 1391\HRShojaieWebAppRC2\Ashyaneh\Web\bin\Web.dll
------ Rebuild All started: Project: Test, Configuration: Debug x86 ------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):
warning MSB3253: The referenced assembly "AshyanehComps.dll" could not be resolved
because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework
".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies
not in the targeted framework or consider retargeting your project.
  Test -> ..\Ashyaneh\Test\bin\Debug\Test.exe
========== Rebuild All: 5 succeeded, 0 failed, 0 skipped ==========
4

7 回答 7

16

这是你的问题:

无法解析引用的程序集“E:\My Programming 1391\HRShojaieWebAppRC2\Ashyaneh\Comps\bin\Release\AshyanehComps.dll”,因为它依赖于“System.Web,Version=4.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 不在当前目标框架 ".NETFramework,Version=v4.0,Profile=Client" 中

假设您正在尝试运行 .NET 4.0,您正在针对“轻量级”、客户端配置文件、基类库进行编译。您需要包含 System.Web 的成熟框架类库。

解决方案

为了更改此设置,请右键单击 AshyanehComps.dll 的项目 > 单击属性 > 单击“应用程序”选项卡 > 将“目标框架”更改为“.NET Framework 4”。

为了安全起见,我会为您解决方案中的所有项目执行上述步骤,您应该会很好。

于 2012-06-29T17:35:51.080 回答
1

您确定通过右键单击有错误的项目并单击“添加引用”并选择项目引用,在每个需要添加的位置作为参考添加了组件吗?

如果完成上述操作,我将遵循以下过程:

  • 保存全部
  • 关闭 Visual Studio
  • 删除每个项目中的 BIN 和 OBJ 文件夹
  • 重启VS
  • 再试一次

如果它仍然不起作用,那么您可能需要调整构建顺序。右键单击解决方案并确保您的每个项目都以正确的依赖顺序构建,并确保您没有任何循环依赖。

于 2012-06-29T14:24:29.953 回答
0

确认您在提交解决方案时保存了您的 csproj,因为您的 csproj 包含您的引用:

于 2012-06-29T14:21:24.450 回答
0

确认您的主应用程序目标框架未设置为 .Net Framework 4.0 Client Profile。如果设置为此,请将其更改并设置为 .Net framework 4.0。

您可以查看如何更改 http://msdn.microsoft.com/en-us/library/bb398202.aspx

于 2012-06-29T14:37:51.677 回答
0

首先,您有 5 个项目。您必须确定报告的哪些“组件”不存在于哪个特定项目中?

然后你去项目参考添加(重新添加,如果它在那里让VS参考缓存生成)到项目。检查您是否需要“复制到本地”选项或验证全局程序集路径。

现在您已完成所有参考,如果问题仍然存在,请检查您的项目代码(特定行)以查看其无法正常工作的原因。发布 MS Build 输出,它会告诉你。

于 2012-06-29T14:37:58.587 回答
0
  • 当您将“组件”项目添加到其他项目作为参考时,在“添加参考”屏幕中,将您的参考添加到“组件”项目输出路径(Components.dll)中的“项目”选项卡而不是“浏览”选项卡中。

  • 然后,清除您的解决方案并构建您的“组件”项目。

  • 如果您的“组件”项目中有错误,请解决它们。

  • 最后构建您的解决方案。

于 2012-06-29T14:44:04.933 回答
0

最有可能您的应用程序目标框架是 4.0 客户端配置文件,就像我的一样。除非您使用特定于 4.0 的解决方案,否则解决方案是将其降至 3.5 并且错误消失。感谢微软。

于 2015-03-13T19:48:27.270 回答