2017-02-28 81 views
6

Podczas próby kompilacji przy użyciu definicji kompilacji TFS natrafiłem na następujący problem.Błąd CS0234 podczas budowania rozwiązania za pomocą TFS 2017 BuildAgent

Podczas wykonywania zbudować Agent rejestruje następujące błędy:

Błąd CS0234: (? Czy brakuje odwołania do zestawu) typu lub obszaru nazw „VisualStudio” nie istnieje w przestrzeni nazw 'Microsoft

błąd CS0246: Typ lub obszaru nazw „TestInitializeAttribute” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

błąd CS0246: Typ lub obszaru nazw „TestCleanupAttribute” nie została znaleziona (czy nie używasz di? Odczynniki lub odwołania do zestawu)

Błąd CS0246: typu lub obszaru nazwa „TestCleanup” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu)

Błąd CS0246: typu lub obszaru Nazwa „TestMethodAttribute” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

więc rozumiem komunikat ten sposób, że buildAgent jest w stanie znaleźć następujące .dll

Microsoft.VisualStudio.TestTools.UnitTesting;

Zainstalowałem Visual Studio 2017 RC i Visual Studio 2017 Build Tools na serwerze, który uruchamia TFS i Buildagents.

Zainstalowałem również .net 4.6.1 na tej maszynie.

Ten accepted answer nie jest rozwiązaniem dla mnie.

Musi istnieć jakieś rozwiązanie, które nie obejmuje kopiowania dll do bagażnika git i odnoszenia go z tego miejsca.

Aktualizacja

jestem w stanie lokalnie zbudować rozwiązanie przy użyciu Visual Studio 2017 RC na tym mashine. Ale agent kompilacji wciąż generuje takie same błędy.

+1

Czy jesteś w stanie zbudować swój projekt lokalnie w VS 2017 RC? Przejdź do komputera agenta budującego i użyj wiersza polecenia msbuild, aby ręcznie uruchomić projekt, aby zobaczyć, jaki wynik uzyskasz? Sprawdź również przyczyny błędów CS0234 i Error CS0246 na poniższych stronach internetowych, aby sprawdzić, czy mogą pomóc: https://docs.microsoft.com/en-us/dotnet/articles/csharp/language-reference/compiler-messages/cs0234, https://docs.microsoft.com/en-us/dotnet/articles/csharp/language-reference/compiler-messages/cs0246 –

+0

Thx za podpowiedź z próbą zbudowania go za pomocą msbuild z wiersza poleceń. Sprawdzę to i udzielę opinii –

Odpowiedz

10

W końcu zorientowałem się, jak rozwiązać ten problem.

Dodałem następujący pakiet Nuget jako odniesienie do mojego projektu:

https://www.nuget.org/packages/MSTest.TestFramework/

czyli ramowa mstestv2.

Potem musiałem usunąć stare odniesienie do ramy mstestv1.

Błędy kompilacji już nie istnieją.

Aktualizacja:

Jeśli chcesz mieć swoje testy wykrywalne dodać MSTest TestAdapter do projektu.

Dzięki Maciej za te informacje.

+3

Jeśli chcesz, aby twoje testy były możliwe do wykrycia/zrobienia z poziomu Visual Studio, będziesz chciał dodać MSTest.TestAdapter w wersji 1.2.0 również: Install-Package MSTest.TestAdapter -Version 1.2.0 – Maciej

+1

dzięki za podpowiedź! Dodam go do odpowiedzi –

+0

Mam podobny problem z niestandardową biblioteką dll. Następnie usunąłem stare odwołanie do biblioteki dll, wkleiłem nowe odniesienie do tej samej biblioteki DLL i działa! – Rekshino

1

zmieniłem ramy docelową z 4,7 do 4.6.1 w VS 2017, a została ona ustalona

Powiązane problemy