2017-06-14 52 views
1

我有一个.net 4.7项目,它安装了System.Runtime的4.3.0版本。但是当我运行这个项目时,我得到一个异常,说它找不到版本4.1.0.0。我无法在.net 4.7项目中使用System.Runtime 4.3.0

如果我去nuget manager,我在项目中安装了4.1.0.0版本,然后它就可以工作。所以我试图再次更新到4.3.0版本,但我再次遇到问题。

该项目工作到现在为止,我真的不知道为什么它停止工作,因为我没有碰到任何与nuget软件包相关的东西。

此外,我试图创建一个新的空解决方案,并添加项目,尝试新的解决方案,但问题是一样的。

我该如何解决问题?

谢谢。

+0

检查任何与包相关的依赖项目的配置文件! –

+2

也许需要绑定重定向?你可以尝试在一个新项目中重现它,并在github上共享它 – Dbl

+0

它是一个基于packages.config的项目还是在vs 2017 15.2中使用新的PackageReference样式nuget包管理? –

回答

1

的NuGet应该生成必要的绑定重定向到App.configpackages.config基于项目或设置AutoGenerateBindingRedirectstrue使用PackageReference引用的NuGet包的csproj文件。

如果由于某种原因,这并没有发生,或者你使用的库从一个不同的项目/应用程序,可能需要手动添加绑定重定向到app.config/web.config文件:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

我试图创建一个空的解决方案并创建项目,并将所有.cs和其他文件复制到这个新项目中。我再次安装了我需要的nuget包装,但问题是一样的。我有一个.net 4.7应用程序,我试图测试的程序集是.net standar 1.6。当我从.net标准的类运行一个方法时,我得到错误。错误是linq,我选择的版本是4.1.0.0,而不是实际版本4.3.0,但问题是相同的。我没有app.config。 –

+0

现在我的所有项目都是.net 4.7,而且仍然在测试项目中,我必须使用版本4.1.0而不是4.3.0。但我不知道在哪里看到或如何设置我想要使用最新版本。也许可能是主要组件使用4.1.0?但是我创建了一个新的项目.net 4.7,只是复制.cs文件,没有配置文件,所以我不知道为什么它应该使用4.1.0版本。 –

+0

你正在使用什么样的项目?你能上传一个repro的地方吗?是否手动添加绑定重定向到一个新的app.config解决了这个问题? –

相关问题