Newtonsoft.json құрастыру бумасының нұсқасының сәйкес келмеуі

I am trying to use SocketIO4Net to create socket.io client in .net. Itseems SocketIO4Net has a dependency of Newtonsoft.Json >= 4.0.8. I also am using PushSharp library which has a Newtonsoft.Json dependency of >= 4.5.10. I got NewtonSoft.Json 4.5.11 when i first installed PushSharp and I thought this version should support SocketIO4Net as well since its a higher version but i get this error whenever am trying to connect to socket.io server.

Файл немесе құрастыруды жүктеу мүмкін болмады 'Newtonsoft.Json, Version = 4.0.8.0, Мәдени = бейтарап, PublicKeyToken = 30ad4fe6b2a6aeed' немесе оның тәуелділіктерінің бірі. Орналастырылған жинақтың манифест анықтамасы жинақ сілтемесіне сәйкес келмейді. (HRESULT ерекшелігі: 0x80131040)

Мен тәулік бойы осы тәуелділік мәселелерімен басымды айналдырдым, егер біреу мені дұрыс бағытта көрсетсе, мен өте ризамын.

19
FYI, біз дәл осы Newtonsoft.Json-тың дәл сол нұсқасымен таныс болдық. Біздің жағдайда, PlainElastic.NET болды ескі 4.0.8 нұсқасын әкелді. Мүмкін NuGet-да өткен Newtonsoft.Json нұсқаларында кейбір сәйкессіздік бар шығар?
қосылды автор Chris Mantle, көзі
FYI, біз дәл осы Newtonsoft.Json-тың дәл сол нұсқасымен таныс болдық. Біздің жағдайда, PlainElastic.NET болды ескі 4.0.8 нұсқасын әкелді. Мүмкін NuGet-да өткен Newtonsoft.Json нұсқаларында кейбір сәйкессіздік бар шығар?
қосылды автор Chris Mantle, көзі

17 жауаптар

Табылған шешімді көріңіз:


    
        
            
            
        
    

18
қосылды
Бұл json.net ағымдық 6.0.8 пакетін түзету.
қосылды автор Eric Brown - Cal, көзі

Табылған шешімді көріңіз:


    
        
            
            
        
    

18
қосылды
Бұл json.net ағымдық 6.0.8 пакетін түзету.
қосылды автор Eric Brown - Cal, көзі

Құрастыру-байланыстыру конфигурациясын өзгертуге және қайта бағыттауды қосуға болады. MSDN арналған Ассамблея нұсқаларының қайта бағыттау бөлімін қараңыз.

Негізінен келесі кодты app.config немесе web.config файлына қосу керек:


   
     
       
         
         <!-- 
           Assembly versions can be redirected in application, 
           publisher policy, or machine configuration files.
         -->
         
       
     
   

ӨҢДЕУ

Неліктен құрастыру нұсқаларын қайта бағыттау қажет? SocketIO4Net Newtonsoft.Json жаңа нұсқаларын қолдайтынына қарамастан, ол бір нұсқаға (4.0.8 сіздің жағдайда) құрастырылды. Бұл нұсқа DLL-де сақталады және SocketIO4Net DLL-леріне байланысты.

Note that NuGet dependencies are not the same as DLL/runtime dependencies - NuGet dependency on Newtonsoft.Json >= 4.0.8 only means that you will be allowed to install SocektIO4Net into a project that has a newer version of Newtonsoft.Json, it has nothing to do with runtime settings.

Нақтырақ айтсақ, соңғы NuGet нұсқалары жобаңызда app.config немесе web.config файлы болса, сізге құрастыру-байланыстыру-қайта бағыттауды автоматты түрде қосу керек.

5
қосылды
@Bitsian Мен «Microsoft.ServiceBus.pdb жүктелмеді» себебі болуы мүмкін екенін білмеймін. Мүмкін тағы бір қате, бұрын құрастыру байланыстыру қателігімен жасырылған болатын.
қосылды автор Miroslav Bajtoš, көзі
Сіз oldVersion үшін ауқымын пайдалана аласыз. Менің мысалда «1.0.0.0-4.5.11.0» 1.0.0.0 бастап 4.5.11.0 бастап (оның ішінде 4.0.8.0) басталатын барлық нұсқаларды білдіреді.
қосылды автор Miroslav Bajtoš, көзі
Бұл кодты менің App.Config жұмысшы рөліне қойған кезде, таңбалар жүктелмейді және мен «Microsoft.ServiceBus.pdb жүктелмеген» қатесін аламын. Мен жоғарыда аталған жиналысты қайта бағыттау кезінде бұл неге пайда болатынына сенімді емеспін. Мен қайтадан алып тастаған кезде бұл орын болмайды. Кез-келген идея?
қосылды автор Bitsian, көзі
Мен 4.0.8-ден 4.5.11-ге дейін қайта бағыттауым керек деп ойладым. Мен скриптің ескі және жаңа нұсқаларында 4,5.11 көремін?
қосылды автор Bitsian, көзі
Жарайды ма! 4.0.8 деген не? ескі нұсқасында айтқым келеді ме? Себебі ол socketio4Net кітапханасы күтеді!
қосылды автор Bitsian, көзі

Жақында ескі жобада жұмыс істедім. Мен біздің Newtonsoft.Json.dll-ді жаңартуға тура келді, себебі жаңа нұсқаны қажет ететін «жаңа» API қолдануға тура келді, бірақ бұрынғы нұсқамды талап ететін басқа да DLL-лер бар еді.

bindingRedirect you say? Nope. It kept complaining about the manifest mismatch.

codeBase тегтерін бөліңіз? Жоқ. Ол манифесттің сәйкес келмеуіне шағымданады.

Шындығында, Newtonsoft.Json.dll (3.0.0.0) ескі нұсқасында PublicKeyToken жоқ, бірақ (4.5.7.1) жаңа нұсқасы бар PublicKeyToken . Сондықтан олар бірдей тәуелдіAssembly-тегімен бөлісе алмады.

Міне, мен:


    
    


    
    

1
қосылды
msdn.microsoft.com/en-us/library/7wd6ex19.aspx «Сіз күшті аталмаған жинақтар үшін нұсқаларды қайта бағыттай алмайсыз Жалпы тілдің орындалу уақыты күшті аталмаған жинақтар үшін нұсқаны елемейді.»
қосылды автор PaulBinder, көзі

Жақында ескі жобада жұмыс істедім. Мен біздің Newtonsoft.Json.dll-ді жаңартуға тура келді, себебі жаңа нұсқаны қажет ететін «жаңа» API қолдануға тура келді, бірақ бұрынғы нұсқамды талап ететін басқа да DLL-лер бар еді.

bindingRedirect you say? Nope. It kept complaining about the manifest mismatch.

codeBase тегтерін бөліңіз? Жоқ. Ол манифесттің сәйкес келмеуіне шағымданады.

Шындығында, Newtonsoft.Json.dll (3.0.0.0) ескі нұсқасында PublicKeyToken жоқ, бірақ (4.5.7.1) жаңа нұсқасы бар PublicKeyToken . Сондықтан олар бірдей тәуелдіAssembly-тегімен бөлісе алмады.

Міне, мен:


    
    


    
    

1
қосылды
msdn.microsoft.com/en-us/library/7wd6ex19.aspx «Сіз күшті аталмаған жинақтар үшін нұсқаларды қайта бағыттай алмайсыз Жалпы тілдің орындалу уақыты күшті аталмаған жинақтар үшін нұсқаны елемейді.»
қосылды автор PaulBinder, көзі

App/web.config ішіндегі жиналысты қайта бағыттаңыз;

   
        
        
      

Нұсқалардың нөмірлері сіз орнатқан нұсқаға сәйкес келуі керек екенін ескеріңіз.

1
қосылды
Бұл кодты менің App.Config жұмысшы рөліне қойған кезде, таңбалар жүктелмейді және мен «Microsoft.ServiceBus.pdb жүктелмеген» қатесін аламын. Мен жоғарыда аталған жиналысты қайта бағыттау кезінде бұл неге пайда болатынына сенімді емеспін. Мен қайтадан алып тастаған кезде бұл орын болмайды. Кез-келген идея?
қосылды автор Bitsian, көзі
Мен 4.0.8-ден 4.5.11-ге дейін қайта бағыттауым керек деп ойладым. Мен скриптің ескі және жаңа нұсқаларында 4,5.11 көремін?
қосылды автор Bitsian, көзі

App/web.config ішіндегі жиналысты қайта бағыттаңыз;

   
        
        
      

Нұсқалардың нөмірлері сіз орнатқан нұсқаға сәйкес келуі керек екенін ескеріңіз.

1
қосылды
Бұл кодты менің App.Config жұмысшы рөліне қойған кезде, таңбалар жүктелмейді және мен «Microsoft.ServiceBus.pdb жүктелмеген» қатесін аламын. Мен жоғарыда аталған жиналысты қайта бағыттау кезінде бұл неге пайда болатынына сенімді емеспін. Мен қайтадан алып тастаған кезде бұл орын болмайды. Кез-келген идея?
қосылды автор Bitsian, көзі
Мен 4.0.8-ден 4.5.11-ге дейін қайта бағыттауым керек деп ойладым. Мен скриптің ескі және жаңа нұсқаларында 4,5.11 көремін?
қосылды автор Bitsian, көзі

Бұл мәселе де болды.

Тек оны шешті.

Бұл NuGet үшін Newtonsoft.JSON тәуелділігі бар Ext.NET орнату үшін қолданылғаннан кейін орын алған Файлды Newtonsoft.JSON.dll файлында/bin (және, анық, ол веб.config файлында сілтеме) қалтасын тексермей, NuGet Package-Орнату процедурасын отладтау кезінде бастадым (сондықтан файлдың құлыптаулы болуы мүмкін).

Орындау уақытының қате терезесінде сізде манифесттің қай бөлігіндегі мәселе бар екенін анықтауға болады, сондықтан менің нұсқаманың нұсқасын тексеріп, негізгі нұсқасы болды. және ол 1 негізгі нұсқа болды. NuGet түпнұсқасы файлын төменде келтірді: «[physical path] /../ packages/Newtonsoft.Json. [Version]/lib/[.network version] /»

Манифесттің де, кітапхананың да екеуі де оны/bin қалтасына көшіріп, түбірлік web.config жинақ ақпаратын жаңартты және ол жұмыс істеді.

Код үлгілері: Бұған дейін


    
    

Кейін


    
    

Бұл көмектеседі деп үміттенемін

1
қосылды

Менің жағдайым бойынша пакетті NuGet-мен алып тастадық және жаңадан орнаттық. Содан кейін сілтемелерді сілтемелерден алып тастап, қолмен қосыңыз. Шебер сияқты жұмыс істейді. Сізге үміт артады.

1
қосылды

Менің жағдайым бойынша пакетті NuGet-мен алып тастадық және жаңадан орнаттық. Содан кейін сілтемелерді сілтемелерден алып тастап, қолмен қосыңыз. Шебер сияқты жұмыс істейді. Сізге үміт артады.

1
қосылды

Мен бұл мәселені оңай шешкен болатынмын: xml файлын конфигурациялау файлын компиляция қалтасынан көшірген жоқпын.

Мен жай ғана менің xml конфигурациясының файлы менің бағдарламаммен бірге қамтылғанына көз жеткіздім және барлығы жақсы жұмыс істеді!

1
қосылды

Мен бұл мәселені оңай шешкен болатынмын: xml файлын конфигурациялау файлын компиляция қалтасынан көшірген жоқпын.

Мен жай ғана менің xml конфигурациясының файлы менің бағдарламаммен бірге қамтылғанына көз жеткіздім және барлығы жақсы жұмыс істеді!

1
қосылды

Just had this happen with TeamCity and I imagine others will soon experience this. This probably applies to most build servers that pull NuGet packages.

Қайта жіберулерді айтатын барлық жауаптар дұрыс. Дегенмен, сіз әлі де дұрыс нұсқалық нөмірді анықтауыңыз керек. Менің жоба Newtonsoft.Json 7.0 қолданды, бірақ олар тек 8.0 шығарды және TeamCity төменде 8.0 сервер және жергілікті емес. Барлық менің қайта бағыттауым 7.0 деп орнатылған.

Қолданылған бағдарламаның NuGet-тан дұрыс нұсқасын алғандығына көз жеткізіңіз. Немесе ең жаңа нұсқаға нұсқау үшін конфигурацияңызды жаңартыңыз.

0
қосылды

Just had this happen with TeamCity and I imagine others will soon experience this. This probably applies to most build servers that pull NuGet packages.

Қайта жіберулерді айтатын барлық жауаптар дұрыс. Дегенмен, сіз әлі де дұрыс нұсқалық нөмірді анықтауыңыз керек. Менің жоба Newtonsoft.Json 7.0 қолданды, бірақ олар тек 8.0 шығарды және TeamCity төменде 8.0 сервер және жергілікті емес. Барлық менің қайта бағыттауым 7.0 деп орнатылған.

Қолданылған бағдарламаның NuGet-тан дұрыс нұсқасын алғандығына көз жеткізіңіз. Немесе ең жаңа нұсқаға нұсқау үшін конфигурацияңызды жаңартыңыз.

0
қосылды

Жоғарыда келтірілген шешімдер дұрыс, бірақ ұмытуға болмайтын тағы бір нүкте бар: app.config мазмұны жоғарыдағы шешімдермен бірдей.

<?xml version="1.0" encoding="utf-8"?>

  
    
      
        
        
      
    
  

Бірақ жаңартылғанын тексеру дұрыс. Менің жағдайда Newtonsoft.JSON (v.6.0.4) басқа пакетке байланысты болды.

enter image description here

Екі нұсқа бар;

  1. Update (Newtonsoft.JSON package) last versions.
  2. Update app.config file in the version numbers.

Соңғы кеңестер, егер сіз бірнеше жобалармен жұмыс істесеңіз, мысалы.   exe-dll және Newtonsoft.JSON болса, екі нұсқаны да тексеріңіз.

0
қосылды

Got the above Error: in Visual Studio 2013 To Fix: In package mamnager Execute: Install-package newtonsoft.json This will add a new line in packages.config Remove the previous line which might point to previous version on packages.config. Delete the old version's directory on the packagers directory. Remove the reference of NewtonSoft.Json and readd it pointing to the latest version. Root webconfig will have the following once everything is done. Close and reopen visual studio. This should fix it. I had the same error when installing PM> install-package durandal.starterkit I used the above method to fix.

0
қосылды

Got the above Error: in Visual Studio 2013 To Fix: In package mamnager Execute: Install-package newtonsoft.json This will add a new line in packages.config Remove the previous line which might point to previous version on packages.config. Delete the old version's directory on the packagers directory. Remove the reference of NewtonSoft.Json and readd it pointing to the latest version. Root webconfig will have the following once everything is done. Close and reopen visual studio. This should fix it. I had the same error when installing PM> install-package durandal.starterkit I used the above method to fix.

0
қосылды