2017-02-24 165 views
0

在我们的本地机器上构建ASP .NET核心Web应用程序时,我们没有任何问题,但是当我们使用VSTS构建在构建服务器(2012 R2)上时,我们遇到了App.exe.configs问题构建代理。所有环境都安装了VS2015 Update 3和最新版本的.NET Core Tools - Preview 2.当我们在本地构建时,我们获得了以下配置。.NET核心网站bindingRedirect构建错误

<?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
     <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
      <assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
      <bindingRedirect oldVersion="5.1.0.0" newVersion="5.1.2.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
      <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
      <bindingRedirect oldVersion="1.1.37.0" newVersion="1.2.1.0" /> 
      <bindingRedirect oldVersion="1.2.0.0" newVersion="1.2.1.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
      <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
      <bindingRedirect oldVersion="1.2.0.0" newVersion="1.4.1.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
      <assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
      <bindingRedirect oldVersion="4.0.0.0" newVersion="4.1.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
      <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
      <bindingRedirect oldVersion="1.1.0.0" newVersion="1.1.2.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
     </runtime> 
    </configuration> 

在我们得到的构建服务器...

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.ObjectPool" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.Http.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.Http.Features" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.WebUtilities" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.Http" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.Hosting.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.FileProviders.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.3.0.0" newVersion="1.4.1.0" /> 
     <bindingRedirect oldVersion="1.2.0.0" newVersion="1.4.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.2.0.0" newVersion="1.2.1.0" /> 
     <bindingRedirect oldVersion="1.1.37.0" newVersion="1.2.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.Http.Extensions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Configuration.EnvironmentVariables" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.1.0.0" newVersion="1.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Logging" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.1.0.0" newVersion="1.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Net.Http.Headers" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.FileProviders.Physical" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.FileSystemGlobbing" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0" newVersion="4.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.Configuration" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="4.0.0.0" newVersion="4.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.DataProtection.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Extensions.WebEncoders" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.AspNetCore.DataProtection" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="5.1.0.0" newVersion="5.1.2.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="1.1.0.0" newVersion="1.1.2.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

第一个问题是,为什么那么多的项目?但主要问题是两个项目有不正确的版本号,如下所示,这是导致错误。任何意见或想法,为什么发生这将不胜感激。

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Extensions.Logging" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
    <bindingRedirect oldVersion="1.1.0.0" newVersion="1.0.0.0" /> 
    </dependentAssembly> 

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Extensions.Configuration.EnvironmentVariables" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
    <bindingRedirect oldVersion="1.1.0.0" newVersion="1.0.0.0" /> 
    </dependentAssembly> 
+0

如果您手动在该构建机器(服务器12 R2)上构建项目,结果如何?你的构建定义的构建步骤是什么?你能在这里分享细节构建日志吗? –

+0

你可以在OneDrive上共享一个简单的项目,它可以重现该问题吗? –

回答

0

为什么有这么多的包?

之前:所有的系统.dll里的部分dotnet框架。现在它是从nuget下载的Dotnet标准库的一部分:因此有很多程序集。

对于绑定重定向我不知道。我能想到的一个解决方案是dotnet试图恢复这些依赖关系。但您使用的其他依赖关系表示他们'必须'具有这些软件包的版本1.0.0.0。然后,Nuget非常友善地为您提供该包,而不是1.0.0.0。 (它应该给予恢复虽然)

旁注:我仍然投票的方式更简单的project.json版本的dotnet核心sdk。我仍然悼念它的死亡。

+0

感谢您的回复乔尔。是的,我们已经在网上看过帖子,提到需要特定版本的其他依赖项。奇怪的是,当我们在本地构建时,以及当我们手动更正版本号时,它工作正常。也不应该我们的本地构建产生具有相同数量的dependantAssembly元素的app.config? – user2997206