Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 生成后缺少程序集_C# - Fatal编程技术网

C# 生成后缺少程序集

C# 生成后缺少程序集,c#,C#,我的C#解决方案中有5个项目 普通的 数据访问 用户界面 组成部分 试验 我可以添加对Components.dll的引用。但是,当我运行解决方案时,我得到了错误: 类型或命名空间名称“Components”不存在 引用文件夹中已存在Components.dll 你能帮帮我吗 以下是构建输出: ------ Rebuild All started: Project: Comps, Configuration: Release Any CPU ------ Comps -> ..\Ashy

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

  • 普通的
  • 数据访问
  • 用户界面
  • 组成部分
  • 试验
  • 我可以添加对Components.dll的引用。但是,当我运行解决方案时,我得到了错误:

    类型或命名空间名称“Components”不存在

    引用文件夹中已存在
    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 ==========
    

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


    通过右键单击出现错误的项目,单击“添加引用”并选择项目引用,您确定已在每个位置添加组件作为引用吗

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

    • 拯救一切
    • 关闭Visual Studio
    • 删除每个项目中的BIN和OBJ文件夹
    • 重新启动VS
    • 再试一次

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

    验证主应用程序目标框架是否未设置为.Net framework 4.0客户端配置文件。 如果设置为该值,请将其更改并设置为.Net framework 4.0

    你可以看到如何改变
    首先,您有5个项目。 您必须确定哪个特定项目中报告了哪些组件不存在

    然后转到项目引用,将其添加到项目中(如果有,请重新添加,以便生成VS reference缓存)。检查是否需要“复制到本地”选项或验证全局程序集路径

    现在你已经完成了所有的参考,如果问题仍然出现, 检查您的项目代码(特定行)以了解其不起作用的原因。发布MS构建输出,它会告诉您。

    • 将“组件”项目添加到其他项目作为参考时, 在“添加引用”屏幕中,在“项目”选项卡中添加引用,而不是 “组件”项目输出路径(Components.dll)中的浏览选项卡

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

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

    • 最后构建您的解决方案

      • 这是您的问题:

        无法解析引用的程序集“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”

        假设您试图运行.NET4.0,那么您是根据“轻量级”、客户端配置文件和基类库进行编译的。您需要包含System.Web的完整框架类库

        解决方案

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


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

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

        感谢您的回复,所有csproj都已保存…问题是否存在?yetIs Components project是否已添加,作为其他任何项目的参考?这五个项目中哪一个报告了错误?您能否分别成功构建每个组件?是的,每个组件都成功构建。否,组件项目仅在测试项目中作为参考添加。这是因为您的主要项目目标框架是.NET framework 4.0客户端配置文件,但“组件”目标框架是.NET framework 4.0,将主项目的目标框架更改为“.NET framework 4.0”,而不是“.NET framework 4.0客户端配置文件”,我下面的回答描述了如何执行该操作。所有项目目标都是.NET framework 4.0谢谢,我完成了所有步骤,但不起作用。循环依赖关系是什么意思?如果我添加了对它的引用,只有一个项目dll会发生此错误。。它是components.dll。我重新命名了它,但仍然无法进行有趣的测试。。。尝试将MS build输出发布到原始帖子中,这应该会更有用(它通过“输出”选项卡提供)。我在Components.csproj中有Email、Cache、Configuration和其他一些类。当我添加对Components.dll的引用时,它被添加了,并且它的所有类都是可访问的(!)。但是,当我想运行(F5)时,会出现类型或命名空间不存在的错误。很好。完成。现在没事了。问题解决了。非常非常感谢你,亲爱的朋友。