不同的 DLL,但在控制台应用程序和网站中应该相同
Different DLL but should be the same in console application and website
我有一个使用相同 System.Runtime.Serialization.Primitives.dll
程序集的控制台应用程序和网站。但是,当我运行该网站时,我的程序集是右边那个,但是如果我运行安慰应用程序,该网站的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>
我继续升级到 Visual Studio 2017,因为我使用的是 2015。之后一切开始正常工作,很多参考问题都消失了。
使用相同 DLL 的不同引用解决此问题的方法:
第 1 步:在 Visual Studio 2015
上创建一个新的网络应用程序
第 2 步:检查问题是否仍然存在于这个新的网络应用程序项目中。
如果答案是否并且问题不再存在,那么:
第 1 步:在 References 部分的原始网站(您的 first/buggy 网络应用程序)项目中跟踪导致问题的程序集引用。
第 2 步:删除引用
第 3 步:添加新引用 并从 浏览 选项引用程序集,而不是检查已经可用的程序集。 (如果您可以从正在运行的控制台项目复制程序集 DLL 引用路径,则最好)
第 4 步:清理然后重建项目。
如果问题仍然存在,则说明您执行的框架升级有问题。
如果问题得到解决,那么是的,你已经解决了!
现在,如果问题在您创建的新 Web 应用程序项目中没有持续存在,而只存在于旧的 website/app ,那么这意味着最初的问题是由于框架升级到 v4.7
后,DLL 引用损坏
即使在您的 website/app 和新创建的 Web 应用程序中更新引用后,如果引用 DLL 的问题仍然存在,那么您升级到 v4.7 框架已损坏和您可能需要卸载并重新安装(或者只是修复框架升级,但我更喜欢第一个选项)框架。
由于您已经安装了 Visual Studio 2017 在您的系统上安装了 .Net v4.7 之后,IDE 已经修复了细微的问题它自己的。虽然您的 Visual Studio 2015 已经安装并且升级到 v4.7 的框架以某种方式损坏,但您的 2015 IDE 无法在内部解决这个微妙的问题。
如果问题得到解决,请卸载 IDE 的一个版本,将 Visual Studio 2015 年和 2017 年都保留在同一系统上是没有必要占用硬盘内存的。 (这只是一个建议)
额外帮助Material:
Microsoft 有一个 .NET Framework v4.7 的专用安装程序页面,针对不同版本的 Visual Studio,它可以从这里访问:Targetting .NET Platform。
如果您希望继续使用,您可能需要从上述 link 下载 .NET Framework v4.7 的全新副本并为您的 Visual Studio 2015 安装它VS2015.
我有一个使用相同 System.Runtime.Serialization.Primitives.dll
程序集的控制台应用程序和网站。但是,当我运行该网站时,我的程序集是右边那个,但是如果我运行安慰应用程序,该网站的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>
我继续升级到 Visual Studio 2017,因为我使用的是 2015。之后一切开始正常工作,很多参考问题都消失了。
使用相同 DLL 的不同引用解决此问题的方法:
第 1 步:在 Visual Studio 2015
上创建一个新的网络应用程序第 2 步:检查问题是否仍然存在于这个新的网络应用程序项目中。
如果答案是否并且问题不再存在,那么:
第 1 步:在 References 部分的原始网站(您的 first/buggy 网络应用程序)项目中跟踪导致问题的程序集引用。
第 2 步:删除引用
第 3 步:添加新引用 并从 浏览 选项引用程序集,而不是检查已经可用的程序集。 (如果您可以从正在运行的控制台项目复制程序集 DLL 引用路径,则最好)
第 4 步:清理然后重建项目。
如果问题仍然存在,则说明您执行的框架升级有问题。
如果问题得到解决,那么是的,你已经解决了!
现在,如果问题在您创建的新 Web 应用程序项目中没有持续存在,而只存在于旧的 website/app ,那么这意味着最初的问题是由于框架升级到 v4.7
后,DLL 引用损坏即使在您的 website/app 和新创建的 Web 应用程序中更新引用后,如果引用 DLL 的问题仍然存在,那么您升级到 v4.7 框架已损坏和您可能需要卸载并重新安装(或者只是修复框架升级,但我更喜欢第一个选项)框架。
由于您已经安装了 Visual Studio 2017 在您的系统上安装了 .Net v4.7 之后,IDE 已经修复了细微的问题它自己的。虽然您的 Visual Studio 2015 已经安装并且升级到 v4.7 的框架以某种方式损坏,但您的 2015 IDE 无法在内部解决这个微妙的问题。
如果问题得到解决,请卸载 IDE 的一个版本,将 Visual Studio 2015 年和 2017 年都保留在同一系统上是没有必要占用硬盘内存的。 (这只是一个建议)
额外帮助Material:
Microsoft 有一个 .NET Framework v4.7 的专用安装程序页面,针对不同版本的 Visual Studio,它可以从这里访问:Targetting .NET Platform。 如果您希望继续使用,您可能需要从上述 link 下载 .NET Framework v4.7 的全新副本并为您的 Visual Studio 2015 安装它VS2015.