Czy serwer kompilacji z zainstalowanym .NET 4.5 może pomyślnie wdrożyć projekt kierowany na 4.0 na serwer z zainstalowanym tylko .NET 4.0?

Niedawno zainstalowaliśmy .NET 4.5 na naszym serwerze do budowania ciągłej integracji, aby mógł obsługiwać nowe projekty wykorzystujące funkcje .NET 4.5. Ten serwer kompilacji jest również używany do budowania i wdrażania starszych projektów, z których niektóre są przeznaczone na .NET 4.0.

Projekty, których celem jest .NET 4.0 budowany na tym serwerze, a następnie wdrożone na serwerze docelowym, na którym zainstalowano tylko .NET 4.0, teraz zawodzą z powodu następującego błędu:

Method not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.

Environment.CurrentManagedThreadId to nowa właściwość .NET Framework 4.5, więc sensowne jest, że serwer z 4.0 nie może go znaleźć. Jednakże, mysą celowanie w .NET 4.0 w czasie kompilacji, więc teoretycznie nie powinniśmypotrzeba mieć zainstalowany 4.5 na serwerze produkcyjnym.

Podsumowując:

Cele projektu 4.0Serwer Build ma zainstalowany 4.5Serwer, na którym wdrażany jest projekt, ma tylko .NET 4.0Projekt kończy się niepowodzeniem w czasie wykonywania z błędemMethod not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.

Co daje? Czy możliwe jest pomyślne uruchomienie bibliotek DLL .NET 4.0 na serwerze z zainstalowanym tylko .NET 4.0, gdy biblioteki DLL są budowane przez serwer z .NET 4.5?

questionAnswers(1)

yourAnswerToTheQuestion