Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano kod błędu MSB3247.
Tekst wiadomości
MSB3247: Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the 'runtime' node in the application configuration file:
Uwagi
Ten błąd występuje podczas kompilowania projektów programu .NET Framework. Jest on generowany przez ResolveAssemblyReference zadanie. Istnieją dwa tryby, w których można uruchomić ResolveAssemblyReference: można go skonfigurować do generowania przekierowań powiązań, lub nie. Jeśli nie zostanie ustawiony, ten błąd występuje, gdy wystąpi konflikt między dwiema różnymi wersjami zestawu zależnego.
Rezolucja
Rozważ następujące rozwiązania:
Rozwiązanie 1. Konfigurowanie programu MSBuild w celu automatycznego generowania przekierowań powiązań
Sprawdź właściwość AutoGenerateBindingRedirects, która konfiguruje automatyczne generowanie ResolveAssemblyReference przekierowań. Tę właściwość można ustawić w programie Visual Studio. Otwórz pozycję Właściwości projektu (Alt+Enter), otwórz kartę Aplikacja i zaznacz pole wyboru Automatycznie generuj przekierowania powiązań.
Możesz także automatycznie wygenerować przekierowania wiązań, edytując plik projektu. Aby to zrobić, dodaj następującą właściwość w jednym z elementów PropertyGroup w pliku projektu:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
Zobacz Włączanie i wyłączanie automatycznego przekierowywania powiązań.
Rozwiązanie 2: Dodaj przekierowania powiązań do pliku app.config lub web.config
Przekierowania wiązań można dodać ręcznie w pliku konfiguracji (na przykład app.config lub web.config) zgodnie z sugestią podaną w tekście ostrzeżenia. Ta opcja jest odpowiednia, jeśli zdecydujesz się nie zezwalać programowi MSBuild na automatyczne generowanie przekierowań powiązań, być może dlatego, że chcesz, aby były jawnie wymienione w plikach konfiguracji, aby zmniejszyć niejednoznaczność.
Jeśli nie chcesz automatycznie generować przekierowań wiązań, zaktualizuj plik app.config (lub web.config), aby jawnie dodać przekierowania wiązań. Komunikat ostrzegawczy zawiera kod XML przekierowań wiązań, które można skopiować i wkleić do elementu runtime pliku app.config.
Alternatywnie, MSBuild zapisuje przekierowania powiązań do pliku wyjściowego, jeśli właściwość GenerateBindingRedirectsOutputType ma wartość true. Jest ona automatycznie ustawiona na wartość true w kompilacji .NET Framework dla plików wyjściowych wykonywalnych, ale można ją również ustawić na wartość true ręcznie dla .dll plików wyjściowych. Gdy program MSBuild generuje przekierowania powiązania, dodaje je do pliku w katalogu wyjściowym .config, który zawiera również wszystkie przekierowania powiązań znalezione w pliku app.config lub w pliku web.config. Możesz skopiować przekierowania powiązania stamtąd i wkleić kod XML do pliku app.config w elemencie runtime, jeśli chcesz, aby były jawnie widoczne, lub jeśli nie chcesz, żeby MSBuild generował je automatycznie.
Zobacz Rozwiązywanie problemów z odwołaniami do zestawów.
Treści powiązane
Dotyczy
Wszystkie wersje programu MSBuild