C# 不同的DLL,但在控制台应用程序和网站中应相同

C# 不同的DLL,但在控制台应用程序和网站中应相同,c#,.net,visual-studio,.net-assembly,compiler-warnings,C#,.net,Visual Studio,.net Assembly,Compiler Warnings,我有一个控制台应用程序和网站,它们使用相同的System.Runtime.Serialization.Primitives.dllassembly。但是,当我运行该网站时,我的程序集是右侧的程序集,但是如果我运行Console应用程序,该网站的DLL将变为左侧的程序集并导致错误。这两个项目都是v4.7,这是在我将所有项目升级到该框架之后开始的 这两个项目都有这一点 <dependentAssembly> <assemblyIdentity name="System.

我有一个控制台应用程序和网站,它们使用相同的
System.Runtime.Serialization.Primitives.dll
assembly。但是,当我运行该网站时,我的程序集是右侧的程序集,但是如果我运行Console应用程序,该网站的DLL将变为左侧的程序集并导致错误。这两个项目都是v4.7,这是在我将所有项目升级到该框架之后开始的

这两个项目都有这一点

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
  </dependentAssembly>


自从使用2015年以来,我一直在升级到Visual Studio 2017。完成此操作后,事情开始正常工作,许多引用问题消失了。

使用相同DLL的不同引用解决此问题的方法:

步骤1:在Visual Studio 2015上创建新的web应用程序

步骤2:检查此新web应用程序项目中的问题是否仍然存在


如果答案为“否”,且问题不再存在,则:

步骤1:在原始网站(您的第一个/buggy web应用程序)项目中,从引用部分跟踪导致问题的程序集引用

步骤2:删除引用

步骤3:添加新引用并从浏览选项引用程序集,而不是检查已可用的程序集。(如果可以从正在工作的Console项目复制程序集DLL引用路径,则最好)

步骤4:清理并重建项目

如果问题仍然存在,则是您执行的框架升级的问题

如果问题解决了,那么是的,你已经解决了


现在,如果该问题在您创建的新web应用程序项目中没有持续存在,但仅保留在旧网站/应用程序中,则表示初始问题是由于框架升级到v4.7后DLL引用损坏所致

即使在更新网站/应用程序和新创建的web应用程序中的引用后,如果引用DLL的问题仍然存在,则升级到v4.7 framework的版本已损坏,您可能需要卸载并安装(或者只需修复框架升级,但我更喜欢第一个选项)再次强调框架

由于您在系统上安装了.Net v4.7之后安装了Visual Studio 2017,因此IDE已经自行修复了这个微妙的问题。虽然您的Visual Studio 2015已经安装,并且升级到v4.7的框架不知何故已损坏,但您的2015 IDE无法在内部解决这个微妙的问题

如果问题得到解决,请卸载一个版本的IDE,将Visual Studio 2015和2017保留在同一个系统上没有必要占用硬盘内存。(这只是一个建议)


多余的帮助材料: Microsoft有一个针对不同版本Visual Studio的.NET Framework v4.7的专用安装程序页,可从以下位置访问:
如果要继续使用VS2015,您可能需要从上述链接下载.NET framework v4.7的新副本,并将其安装到Visual Studio 2015中。

是否已将其标记为编译器警告?有吗?要检查的东西太多了,你需要提供更多的信息,但在某个地方你将瞄准错误的东西这就是我现在看到的详细输出这似乎是包管理器的错误。其他人也有类似的错误,似乎什么都不起作用。我在两个项目中使用了相同的DLL,但在编译DLL时不同。两个项目的目标是相同版本的.net framework吗?相同的体系结构类型?etcDid您是否尝试从目标.NET平台网站安装.NET v4.7的新副本,如我的解决方案中所述?如果您想继续使用Visual Studio 2015,请尝试一下,并告诉我。您知道我已经解决了这个问题,因此无需发表评论