12
有一個ASP.NET應用程序有幾個項在這種格式Web.Config文件:我可以告訴bindingRedirect始終使用最新的可用版本嗎?
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135" newVersion="1.6.5135" />
</dependentAssembly>
這些庫來作爲的NuGet包。
現在每次更新我20+的NuGet包我做這樣的事情:
- 一鍵更新所有軟件包。
- 在瀏覽器中打開應用程序。
- 查看錯誤,如this one。
- 打開我的Web.Config,找到綁定重定向條目。
- 查找程序集最新版本。
- 修改我的web.config。
- 更新所有其他更新的具有綁定重定向的NuGet包的步驟2 ... 6。
這是非常難煩人。
我的問題:
有沒有辦法告訴bindingRedirect
entry總是使用最新版本?
E.g.是這樣的:
<bindingRedirect oldVersion="0.0.0.0-*" newVersion="*" />
(使用通配符告訴最新版本)
最近我才翻過是一樣的東西:
<bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="1.6.5135" />
(僅限指定的最新版本一次)
作爲我在服務器上的實時網站上的一個非常好的解決方法,我編寫了一個命令行腳本,通過解析出acutal程序集的版本並相應地修改web.config文件來自動調整綁定重定向。 –
不介意分享該腳本,你會嗎?我遇到了同樣的事情。 – asawyer
@asawyer它深深隱藏在一個大的自定義[CS腳本](https://github.com/oleg-shilo/cs-script)構建腳本中。基本上打開配置文件,從程序集讀取DLL版本,替換配置中的字符串,寫回配置文件。 –