2011-08-24 9 views
12

przełączania z debugowania do uwolnienia kompilacji powoduje, że urządzenie Visa, aby zatrzymać pracę i następujące tajemnicze ostrzeżenie:Jak przemapować montażową wersji

docelowe ResolveAssemblyReferences:

Rozważmy app.config ponowne mapowanie montażowej „IVI. Visa.Interop, Kultura = neutralny, PublicKeyToken = a128c98f1d7717c1 "z wersji " 3.0.0.0 "[] do wersji" 3.2.0.0 "[dll \ Ivi.Visa.Interop.dll] w celu rozwiązania konfliktu i pozbycia się ostrzeżenia . C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets: ostrzeżenie MSB3247: Znaleziono konflikty między różnymi wersjami autonomicznego zespołu .

Właściwości referencyjne Ivi.Visa.Interop w projekcie VS2008 wskazują, że biblioteka DLL jest w wersji 3.2.0.0. Jaka jest procedura zmiany przypisania wersji zespołu zgodnie z ostrzeżeniem?

+0

[Przekierowywanie wersji zespołów w witrynie MSDN] (http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=VS.100%29.aspx) (.NET 4.0) – Rune

Odpowiedz

1

sytuacja miałem, był z:

{Final Class Library}<-{Dependent Class Library}<-{Referenced DLL}

The {Referenced DLL} miał stwardnienie GAC TokenKluczaPublicznego mecze.

Tak więc kompilacja {Final Class Library} zignorowała wersję wymienioną w {Dependent Class Library} i wykorzystała najwyższą wartość Version=. To miało wyjście z No way to resolve conflict between i Choosing ... arbitrarily itp.

Zamiast wiązania zestawu, właśnie dodałem odniesienie w {Final Class Library} do {Referenced DLL}. Jestem zadowolony z tej opcji, wydaje się prostsze.

1

Ostrzeżenie "Znaleziono konflikty między różnymi wersjami tego samego zespołu zależnego." oznacza, że ​​masz wiele złożeń w projekcie odwołujących się do różnych elementów pośredniczących COM Interopera - sugerowałbym wybór jednego (zakładając, że nie ma podstawowego zestawu współdziałania dostarczonego przez sprzedawcę biblioteki) i zmianę wszystkich odniesień do odwołania do tego zespołu współdziałającego (zamiast dodawania odniesień do biblioteki COM wszędzie)

Powiązane problemy