Mam aplikację WPF, która jest zgodna ze wzorcem MVVM. Niedawno podpisaliśmy aplikację i teraz otrzymuję wiele wyjątków od pierwszej szansy przy starcie. Mam prześledzić problem do:System.IO.FileLoadException podczas składania aplikacji
W każdym razie, jeśli odwołać innej przestrzeni nazw ze we wniosku, gdy widok jest zainicjowany pojawia się błąd:
"Could not load file or assembly 'MyApplication, Version=3.0.5917.24348, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"MyApplication, Version=3.0.5917.24348, Culture=neutral, PublicKeyToken=xxxxxxxxxxx"
Jego zawsze szuka wersji, która jest 1 za wersją, którą faktycznie uruchomiłem.
Gdybym usunięcie odniesień do innych nazw od poglądów, InitializeComponent()
nie wyrzuca błędu
Widok:
<UserControl x:Class="MyApplication.View.DiagnosticsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:convert="clr-namespace:MyApplication.Converters" <!--Causes error-->
xmlns:behave="clr-namespace:MyApplication.Behaviors" <!--Causes error-->
xmlns:controls="clr-namespace:MyApplication.UserControls" <!--Causes error-->
Jeśli mogę usunąć te odniesienia i przenieść moje konwertery i zachowań w inną bibliotekę DLL, a następnie odsyłając je do biblioteki DLL, nie ma problemu. Błędy znikną. Również jeśli nie podpiszę zgłoszenia, nie otrzymam błędów. Naprawdę nie chcę mieć odniesienia do tych rzeczy w innej bibliotece DLL, wydaje się, że to powinno działać dobrze. Spędza również około 30 sekund, rzucając wszystkie te błędy, ponieważ wszystkie widoki są tworzone, więc robię uderzenie na wydajność. Nie rozumiem, dlaczego aplikacja próbuje się załadować i dlaczego próbuje załadować starszą wersję samego siebie. Bez względu na to, ile razy buduję, błąd zawsze wynosi 1 wersję.
Fusion Log:
*** Assembly Binder Log Entry (3/17/2016 @ 10:30:11 AM) ***
The operation failed.
Bind result: hr = 0x80131040. No description available.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\tfs\Development\dev-feature\src\MyApplication\bin\Debug\MyApplication.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = MyApplication, Version=3.0.5920.15594, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx
(Fully-specified)
LOG: Appbase = file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MyApplication.exe
Calling assembly : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\tfs\Development\dev-feature\src\MyApplication\bin\Debug\MyApplication.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: MyApplication, Version=3.0.5920.15594, Culture=neutral, PublicKeyToken=7b0591cb18d2a932
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/MyApplication.DLL.
LOG: Attempting download of new URL file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/MyApplication/MyApplication.DLL.
LOG: Attempting download of new URL file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/bin/MyApplication.DLL.
LOG: Attempting download of new URL file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/bin/MyApplication/MyApplication.DLL.
LOG: Attempting download of new URL file:///C:/tfs/Development/dev-feature/src/MyApplication/bin/Debug/MyApplication.EXE.
LOG: Assembly download was successful. Attempting setup of file: C:\tfs\Development\dev-feature\src\MyApplication\bin\Debug\MyApplication.exe
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: MyApplication, Version=3.0.5920.15596, Culture=neutral, PublicKeyToken=7b0591cb18d2a932
WRN: Comparing the assembly name resulted in the mismatch: Revision Number
ERR: The assembly reference did not match the assembly definition found.
ERR: Run-from-source setup phase failed with hr = 0x80131040.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
stwierdziliśmy, że jeśli ustawić dysk wersji we właściwościach aplikacyjnych, takich jak 3.0.0.0 i nie pojawia się błąd. Jednak gdy mam wersję 3.0. * Dostaję błędy. – user1336827
Jak się podpiszesz? – FriendlyGuy
Sprawdzam "Podpisz zestaw" pod zakładką podpisywania w projekcie -> właściwości, a następnie wybierając nasz plik klucza. – user1336827