我目前有一个DotNetCore REST API(针对v2.1),该API引用了DotNetStandard项目(针对v2.0)。 .NET Standard项目引用了.NET完整框架项目(针对v4.6.1),该项目调用Sybase IQ数据库。
当我使用IIS Express在VS2017中运行我的应用程序时,所有这些都可以完美地工作,但是一旦发布该应用程序并尝试调用引用.NET 4.6.1应用程序的Api端点,就会出现以下错误:>
System.IO.FileNotFoundException:无法加载文件或程序集>'System.Drawing.Common,版本= 0.0.0.0,区域性=中性,>?> PublicKeyToken = cc7b13ffcd2ddd51'。系统找不到指定的文件。
奇怪的是,我的项目或引用的Dll都没有引用System.Drawing.Common(或System.Drawing命名空间中的任何内容)。所有其他功能均按预期工作。
我尝试使用Nuget(最新版本为4.5.1)手动添加System.Drawing.Common.dll,但这不能解决问题。添加Nuget程序包后,我尝试将程序集绑定重定向添加到发布文件夹中的web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Drawing.Common" culture="neutral"
publicKeyToken="cc7b13ffcd2ddd51" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.6.26919.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
但是错误仍然存在。
有人对造成这种情况的原因有任何想法吗?
答案 0 :(得分:0)
Lex Li的答案是正确的。我将Api应用程序的目标框架更改为net471,现在可以正常使用了。