編輯:已經解決了這個問題!請參閱下面的答案。Nuget包產生損壞的web.config文件(assemblyBinding部分)
我有一個奇怪的問題,我已經創建了nuget包。 我已經創建了幾個nuget包,之前從未遇到過這個問題,但現在突然安裝新包時,它將生成無效的web.config文件。
nuspec文件幾乎完全相同,在一些其他(工作)項目。我想補充的安裝腳本和一些特殊的內容和設置的依賴關係在元數據段:
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>Kooco.com Ltd</authors>
<owners>$author$</owners>
<description>Server-Project Template for use with the Kooco.Framework</description>
<releaseNotes>Pre-Alpha Release</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Maxima Kooco WebProjects</tags>
<dependencies>
<dependency id="Newtonsoft.Json" version="10.0" />
<dependency id="AutoMapper" version="6.0" />
<dependency id="WebActivatorEx" version="2.2" />
<dependency id="Kooco.Framework" version="$version$" />
</dependencies>
<references>
</references>
</metadata>
<files>
<file src="install.ps1" target="tools" />
<file src="NugetOverwriteContents\**\*.*" target="tools\OverwriteContents" />
<file src="NugetNoOverwriteContents\**\*.*" target="tools\NugetNoOverwriteContents" />
</files>
</package>
的依賴都酷似其他(工作)封裝相同。
但由於某些原因,在安裝包時,的NuGet將產生如下的web.config部分,從而導致錯誤的應用程序,因爲非封閉標記:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /><assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /><assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /></dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
</assemblyBinding>
</runtime>
安裝的NuGet前包是:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /><assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /></dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
</assemblyBinding>
</runtime>
我沒有自定義配置轉換。 我有一個安裝腳本,但這個腳本不是問題,我也嘗試安裝沒有安裝腳本,並具有相同的問題。
目標項目是一個空的ASP.Net Web應用程序,其中我使用了「空」模板,並激活了「MVC」和「WebAPI」。
我的nuget軟件包管理器版本是3.5.0.1484。已啓用自動更新。 我正在使用Visual Studio 2015社區版。我的系統是Windows 10.
有人有一個想法可能會導致此問題?