2015-06-30 13 views
6

Utworzono bibliotekę klas do testowania projektu ASP.NET MVC VNext.Problemy w programie Dapper i MVC VNext

W bibliotece tej klasy używam Dapper więc mam project.json:

{ 

    "dependencies": { 
    "xunit": "2.1.0-beta2-*", 
    "xunit.runner.dnx": "2.1.0-beta2-*", 
    "Dapper": "1.42.0" 
    }, 

    "commands": { 
    "test": "xunit.runner.dnx" 
    }, 

    "frameworks": { 

    "dnx451": { 
     "dependencies": { 
     "Dapper": "1.42.0" 
     } 
    }, 

    "dnxcore50": { 
     "dependencies": { 
     "System.Collections": "4.0.10-beta-22816", 
     "System.Linq": "4.0.0-beta-22816", 
     "Microsoft.CSharp": "4.0.0-beta-22816", 
     "Dapper": "1.42.0" 
     } 
    } 

    } 
} 

Wciąż otrzymuję błąd:

The type or namespace name 'Dapper' could not be found (are you missing a using directive or an assembly reference?) MvcProj.Test.DNX Core 5.0 

Jak mogę rozwiązać ten problem?

Odpowiedz

5

Wystąpił problem z powodu braku pakietu Dapper dla wersji dnxcore50 (CoreCLR). Istnieją trzy sposoby rozwiązania tego problemu.

  1. Usuń węzeł "dnxcore50" z project.json (to oznacza, że ​​nie będą budować przeciwko dnxcore50 już).
  2. W swoim kodzie aplikacji, gdzie używasz Dapper otaczaj te fragmenty kodu ifdefs: #if DNX451 .... #endif. To sprawia, że ​​aplikacja jest używana tylko w wersji Dapper w konfiguracji kompilacji dnx451.
  3. Konwertuj Dapper, aby zbudować dla dnxcore50. Wymagałoby to pobrania kodu źródłowego i wprowadzenia niezbędnych zmian do pracy pod numerem dnxcore50.
9

Użyj wersję beta Dapper

Od dnxcore50 jest jeszcze w fazie beta, żadna z wersji uwalnianiu Dapper może domagać wsparcia zwalniający dla niego jeszcze. Dlatego faceci Dappera nie umieszczają go w paczkach wydania.

Obsługa wersji beta DNX jest dostępna w wersjach beta narzędzia Dapper. Spróbuj użyć wersji 1.41.0-beta5 lub jakiejkolwiek najnowszej wersji nieopublikowanej w wersji nuget feed.

"dependencies": { 
    //... 
    "System.Data.SqlClient": "4.0.0-beta-23225", 
    "Dapper": "1.41.0-beta5" 
}, 

Używam tego w moich aplikacjach i wygląda na to, że działa dobrze.