首页 文章

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

提问于
浏览
282

我希望通过直接引用插件项目并实例化插件类来测试插件的核心类 . 当我创建一个测试Console App项目并向插件项目添加项目引用时,我会在References列表中的引用旁边看到一个警告图标(带有感叹号的黄色三角形) .

当我改为添加对dll的引用时,插件的程序集构建输出,我没有得到这样的警告 . 这警告可以告诉我什么?

13 回答

  • 0

    对我来说,在.NET Framework 4.7.1控制台应用程序中引用.NET Standard 2.0类库时遇到了这个问题 . 是的,框架是不同的,但它们是兼容的(.NET标准应该与.NET Core和.NET Framework一起使用 . )我尝试清理,重建,删除和读取项目参考等...但没有成功 . 最后,退出Visual Studio并重新打开解决了问题 .

  • 23

    检查引用的dll的NETFramework和要添加DLL的项目 . 例如:DLL ==> supportedRuntime version =“v4.0”Project ==> supportedRuntime version =“v3.0”

    你会收到警告图标 . 解决方案:使dll版本一致 .

  • 1

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

  • 632

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

    转到Visual Studio - > BUILD - > Configuration Manager

    在右上角的“Active Solution Platform”下拉(我的是VS 2012),如果它是“Mixed Platforms”,则根据您的参考第三方程序集将其更改为适当的平台 .

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

    首先重建库项目,然后引用项目 . 希望这可以帮助 .

  • 5

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

    Update-Package -Reinstall
    
  • 2

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

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

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

  • 2

    为了修复一些不起作用的东西,有时删除一些库是有意义的,这听起来有多奇怪 .

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

    我有一个项目(由客户带来)与Xamarin Forms和Telerik库 . 事情通常与组件相关, libraries are not included 到包文件夹中,也不能通过Nuget(付费的)获得 .

    整个项目参考文献都是"yellow",看起来非常可怕 .

    solution 只是 to remove 那些Telerik references (包括一些使用它的代码中的控件) . 在此之后,所有参考文件神奇地得到了他们共同的正常灰色,并且错误(大多数)消失了 .

    “主要” - 因为“所有红色”错误消息有关“元素未在任何地方定义”有时会发生 . 这很奇怪,并带来不便,但我仍然可以编译和运行项目:只需要清理解决方案,重新启动Visual Studio,祈祷一点,再次清理,删除obj / bin文件夹,重新启动,然后它效果很好 .

    关键是 remove not available libraries references ,因为错误信息绝对是另一回事 . (例如,类似于"Xamarin.Build.Download.XamarinDownloadArchives not found or cannot find something"等,但这可能意味着您没有可用的参考资料 .

    然后删除packages文件夹,重新加载/重新打开项目/解决方案,转到“Manage Nuget Packages”并单击“Restore”按钮 .

  • 70

    确保你有 projects targeting the same framework version . 大多数时候,原因是当前项目(您要添加另一个项目的参考)指向 different .net framework version than the rest ones .

  • 43
    • 确保 all versions are same for each projects 单击每个项目并在此处查看版本项目>属性>应用程序>目标.NET框架

    • a . 转到工具> Nuget包管理器>包管理器控制台类型 Update-Package -Reinstall (如果不工作继续 2.b

    Remove < Target > Maybe with multiple lines < /Target > 通常位于.csproj的底部 .

    • 保存,加载并构建解决方案 .
  • 15

    在Asp.net核心中,如果您更改项目名称空间或名称,它会显示警报 . 要删除此类警报,您只需卸载项目并再次加载它 . 如果问题仍然存在,则意味着您无法找到您的装配参考 .

  • 2

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

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

    在Visual Studio 2015中 Right Click project > Properties > Application > Target Framework

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

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

  • 1

    出于不同的原因,我有这些图标 . 我们为所有项目(近100个)提供了一个重要的解决方案 . 我对我感兴趣的项目进行了分选,并提出了新的解决方案 . 但是项目引用的引用而不是对已编译的dll的引用....

    经过一些研究后我发现了this link on GitHub,这解释了这是VS2015中的新行为 .

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

  • 0

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

相关问题