.net 为什么在添加对MEF插件项目的引用时会出现警告图标?

.net 为什么在添加对MEF插件项目的引用时会出现警告图标?,.net,mef,project-reference,.net,Mef,Project Reference,我希望通过直接引用插件项目并实例化插件类来测试插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,在引用列表中的引用旁边会出现一个警告图标(带感叹号的黄色三角形) 当我改为添加对dll(插件的汇编生成输出)的引用时,我没有收到这样的警告。这个警告想告诉我什么?很久没有人问这个问题了,但是如果有人仍然感兴趣,我最近遇到了类似的图标。我当时正在使用VS2008编译一个C#net项目。我发现VS无法找到这些引用的程序集。当我双击VS时,刷新了引用并删除了其中一些[编辑:它现

我希望通过直接引用插件项目并实例化插件类来测试插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,在引用列表中的引用旁边会出现一个警告图标(带感叹号的黄色三角形)


当我改为添加对dll(插件的汇编生成输出)的引用时,我没有收到这样的警告。这个警告想告诉我什么?

很久没有人问这个问题了,但是如果有人仍然感兴趣,我最近遇到了类似的图标。我当时正在使用VS2008编译一个C#net项目。我发现VS无法找到这些引用的程序集。当我双击VS时,刷新了引用并删除了其中一些[编辑:它现在可以找到]上的图标。对于其余的引用,我必须编译相应的程序集。

如问题的评论中所述,项目之间不同的.NET Framework版本可能会导致这种情况。检查新项目的属性,确保未使用其他默认版本。

将我的2美分添加到@kad81答案中

转到Visual Studio->生成->配置管理器

在右上角的“活动解决方案平台”下拉列表中(我的是VS 2012),如果是“混合平台”,请根据您的参考第三方程序集将其更改为相应的平台

然后在列表中的每个项目中,确保为所有项目选择相同的平台。(如果x86不存在,则选择“”,然后可以选择“x86”。)

首先重建库项目,然后再引用项目。
希望这有帮助。

在当前解决方案的所有项目中重新安装所有软件包:

Update-Package -Reinstall

检查所引用dll的NETFramework&添加dll的项目。 前任: DLL==>supportedRuntime version=“v4.0” Project==>supportedRuntime version=“v3.0”

您将看到警告图标。
解决方案:使dll版本在多个应用程序之间保持一致

一个ASP.Net Web应用程序和两个需要在Web应用程序中引用的库类项目遇到了相同的问题。我没有提供构建失败和引用无效的原因的信息

解决方案是确保所有项目具有相同的目标框架:

在Visual Studio 2015中-右键单击项目>属性>应用程序>目标框架

保存、清理和重建解决方案。项目引用不应再显示为黄色警告,解决方案将编译

我的Web应用程序的目标是.Net 4.5,而其他两个依赖库类项目的目标是.Net v4.5.2

两个(或所有)要一起使用的项目:

右键单击项目>属性>应用程序>目标.NET framework


请确保您的两个(或所有)项目都使用相同的.NET framework版本。

我使用这些图标是出于不同的原因。我们所有的项目都有一个大的解决方案(将近100个)。我对我感兴趣的项目进行了再选择,并提出了一个新的解决方案。但是,项目引用而不是对已编译dll的引用的引用

经过一些研究,我发现这是VS2015中的新行为

在GitHub页面上,他们解释了将项目引用转换为二进制引用的解决方法

  • 确保每个项目的所有版本都相同单击每个项目,在此处查看版本Project>Properties>Application>Target.NET framework

  • a。转到工具>Nuget软件包管理器>软件包管理器控制台类型更新软件包-重新安装(如果不工作,请转至2.b

    b这很关键,但最有可能奏效删除可能有多行通常位于.csproj的底部

  • 保存、加载和生成解决方案


  • 为了修复一些不起作用的东西,有时候删除一些库是有意义的,这听起来怎么不奇怪呢

    无论如何,我认为问题太广泛,可能是由不同的因素造成的,所以我想分享我的情况/解决方案

    我有一个项目(由客户带来),有Xamarin表单和Telerik库。这件事通常与组件有关,这些组件库不包括在packages文件夹中,也不通过Nuget(付费组件)提供

    整个项目的参考资料都是黄色的,看起来既恐怖又可怕

    解决方案就是删除那些Telerik引用(包括代码中使用该引用的一些控件)。就在那之后,所有的参考都神奇地得到了它们普通的灰色,错误(大部分)消失了

    “大部分”-因为关于“元素未在任何地方定义”的“全红”错误消息有时仍然发生。这很奇怪,给我带来了不便,但我仍然能够编译和运行这个项目:只需要清理解决方案,重新启动Visual Studio,祈祷一下,再次清理,删除obj/bin文件夹,重新启动,一切正常

    关键是删除不可用的库引用,因为错误消息完全是另一回事。(例如,“Xamarin.Build.Download.XamarinDownloadArchives未找到或找不到内容”等,但这可能意味着您没有可用的参考资料


    然后删除软件包文件夹,重新加载/重新打开项目/解决方案,转到“管理Nuget软件包”并单击“还原”按钮。

    在Asp.net core中,如果您更改了项目名称空间或名称,它会显示警报。要删除此类警报,您只需卸载并加载项目即可
    <ProjectReference Include="..\ProjectA\ProjectA.csproj">
        <Private>true</Private>
        <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
    </ProjectReference>
    
    <ItemGroup>
        <Reference Include="ProjectA">
        <HintPath>..\ProjectA\bin\Debug\netcoreapp3.1\ProjectA.dll</HintPath>
        </Reference>
    </ItemGroup>