一個舊的net2.0專案現在用新的vs編譯會自動生成這個。但是提示:
以下程式集包含對高于目標版本的 .NET Framework 版本的依賴項,在運行時可能無法正確加載并會導致錯誤...
依賴項為: System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089; mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089; System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
需要改什么配置可以支持2.0,服務器是舊的不能改4.0
uj5u.com熱心網友回復:
你在ide中把專案和類別庫的架構都改成.net framework 2.0,再試試看
uj5u.com熱心網友回復:
已經改成2.0了,而且也試過把生成序列化程式集改成關,匯出站點的時候依然會報錯。。。
uj5u.com熱心網友回復:
匯出站點?是發布吧?你把站點根目錄類似 *.publishproj的洗掉掉,重新發布,當然框架按你的意思得改成2.0再發布。uj5u.com熱心網友回復:
刪掉還是不行。。。軟體是Microsoft Visual Studio Community 2019
發布的時候設定了發布期間預編譯這個,不勾這個可以發布但是,訪問站點會報錯。
未能加載檔案或程式集“xxxx.BLL.XmlSerializers”或它的某一個依賴項。生成此程式集的運行時比當前加載的運行時新,無法加載此程式集。
這個dll應該是自動生成的吧??專案里沒找到這個呀
uj5u.com熱心網友回復:
vs有時候會發神經,會發布出老的dll,你把xxxx.BLL.XmlSerializers這個所在的專案,改成一樣的版本后,單獨編譯,然后覆寫到站點上。uj5u.com熱心網友回復:
單獨重新生成沒報錯,但是拷貝到站點目錄還是失敗,站點重新發布也是失敗。。。
錯誤:
能加載檔案或程式集“xxx.BLL.XmlSerializers”或它的某一個依賴項。生成此程式集的運行時比當前加載的運行時新,無法加載此程式集。
警告: 程式集系結日志記錄被關閉。
要啟用程式集系結失敗日志記錄,請將注冊表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)設定為 1。
注意: 會有一些與程式集系結失敗日志記錄關聯的性能損失。
要關閉此功能,請移除注冊表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
[BadImageFormatException: 未能加載檔案或程式集“xx.BLL.XmlSerializers”或它的某一個依賴項。生成此程式集的運行時比當前加載的運行時新,無法加載此程式集。]
System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166
System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
xxx.BLL.XmlSerializers所依賴專案也得改成2.0吧。uj5u.com熱心網友回復:
問題就在這!!!!!找不到這個對應的檔案,xxx專案的參考都已經是運行時版本2.0了。。
uj5u.com熱心網友回復:
知道原因了,因為新的vs自帶的sgen.exe是4.0的。。。。要去舊版那拷貝2.0的然后手動序列化下生成的dll就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/28022.html
標籤:ASP.NET
