2017-03-10 47 views
16

Przekazuję dll Net Framework 4 do Net Core. Podczas przenoszenia mojej jednostki testowej projektu otrzymuję wyjątek uruchamiający określone testy (nie wszystkie).Nie można załadować pliku lub zestawu System.Net.Http w wersji 4.1.1.0

System.IO.FileLoadException: Nie można załadować pliku lub zestawu 'System.Net.Http, Version = 4.1.1.0, Culture = neutral, TokenKluczaPublicznego = b03f5f7f11d50a3a' lub jeden z jego zależnościami. Definicja manifestu zlokalizowanego złożenia nie pasuje do odwołania do zespołu. (Wyjątek od HRESULT: 0x80131040)

To project.json dla mojego dll

{ 
 
    "version": "1.0.0-*", 
 

 
    "dependencies": { 
 
    "log4net": "2.0.7", 
 
    "NETStandard.Library": "1.6.1", 
 
    "Newtonsoft.Json": "9.0.1", 
 
    "StackExchange.Redis": "1.2.1" 
 
    }, 
 

 
    "frameworks": { 
 
    "netstandard1.6": { 
 
     "imports": "dnxcore50" 
 
    } 
 
    } 
 
}

A to Packages.config na testy jednostkowe wystawać

<packages> 
 
    <package id="Castle.Core" version="4.0.0" targetFramework="net462" /> 
 
    <package id="log4net" version="2.0.7" targetFramework="net462" /> 
 
    <package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="net462" /> 
 
    <package id="Moq" version="4.7.1" targetFramework="net462" /> 
 
    <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" /> 
 
    <package id="StackExchange.Redis" version="1.2.1" targetFramework="net462" /> 
 
    <package id="System.Diagnostics.DiagnosticSource" version="4.0.0" targetFramework="net462" /> 
 
    <package id="System.IO" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.IO.FileSystem" version="4.0.1" targetFramework="net462" /> 
 
    <package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net462" /> 
 
    <package id="System.IO.FileSystem.Watcher" version="4.0.0" targetFramework="net462" /> 
 
    <package id="System.Linq" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.Net.Http" version="4.1.1" targetFramework="net462" /> 
 
    <package id="System.Net.NameResolution" version="4.0.0" targetFramework="net462" /> 
 
    <package id="System.Runtime" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="net462" /> 
 
    <package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="net462" /> 
 
    <package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="net462" /> 
 
    <package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="net462" /> 
 
    <package id="System.Threading.Thread" version="4.0.0" targetFramework="net462" /> 
 
</packages>

+0

Spróbuj "dotnet restore" –

+0

@ J.Do nadal nie działa – Jawen

Odpowiedz

20

Naprawiono go aktualizując System.Net.Http do 4.3.1

+2

Usunięto skąd? – Maritim

+1

Nie musiałem usuwać System.Diagnostics.DiagnosticSource, tylko aktualizowanie System.Net.Http rozwiązało to dla mnie! –

+0

Jak to zaktualizowałeś? –

1

miałem ten problem, podczas gdy miałem 10 projektów w zależności od siebie. Naprawiłem to, dodając wersję, o którą prosiłem w jednym z projektów, od których zależało. Nie była potrzebna do kompilacji, ale wydaje się, że dodając ją, poprawiono wersję w innych projektach podczas przywracania. Tak było:

Nie można załadować pliku lub zestawu 'System.Net.Http, Version = 4.1.1.0, Culture = neutral , TokenKluczaPublicznego = b03f5f7f11d50a3a' lub jeden z jego zależności. System nie może odnaleźć określonego pliku.

Następnie:

Nie można załadować pliku lub zestawu 'System.Net.Http, Version = 4.1.1.1, Culture = neutral , TokenKluczaPublicznego = b03f5f7f11d50a3a' lub jeden z jego zależności. System nie może odnaleźć określonego pliku.

Więc dodałem "System.Net.Http": "4.1.1", w jednym projekcie ..

To rzeczywiście problem został rozwiązany podczas gdy przywrócona 8 projektów.

3

Mój problem polegał na tym, że moja usługa miała zestaw referencyjny, który miał odniesienie do nowszej wersji System.Net.Http. Rozwiązałem problem, aktualizując System.Net.Http w usłudze.

7

Mam problem i zdałem sobie sprawę, że to dlatego, że miałem dwa różne odniesienia. jedno odniesienie pochodziło z mojej biblioteki projektu, a drugie było zależne od biblioteki .Net Standard, a zatem pakiet Nuget. Kroki do rozwiązania były następujące:

  • Usuń odwołanie do System.Net.Http (projekt => dodać odniesienia => usunięcie odniesienia).
  • Zachowaj pakiety Nuget System.Net i System.Net.Http
  • Uruchom Update-Package –reinstall System.Net.Http, aby przywrócić odniesienie.

Teraz działa ponownie. :)

0

Zgadzam się z Jean. Usuń odwołanie do złożenia, a następnie dodaj nowe odwołanie za pośrednictwem Nuget! Rzeczywista wersja System.Net.Http nie ma znaczenia. Po usunięciu odwołania do złożenia, wszystko działa bez zarzutu, wersja 4.3.2