【发布时间】:2018-10-23 21:37:59
【问题描述】:
我目前有一个引用 DotNetStandard 项目(针对 v2.0)的 DotNetCore REST API(针对 v2.1)。 .NET Standard 项目引用了一个调用 Sybase IQ 数据库的 .NET Full Framework 项目(面向 v4.6.1)。
当我使用 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 手动添加 System.Drawing.Common.dll(最新版本为 4.5.1),但这并不能解决问题。添加 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>
但错误仍然存在。
有没有人知道是什么原因造成的?
【问题讨论】:
-
由于对“.NET Full Framework 项目”的依赖,您应该在 .NET Framework 而不是 .NET Core 上运行 .NET Core 项目。
标签: c# .net .net-core iis-7.5 .net-standard