2017-02-24 148 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