Udostępnij za pośrednictwem


Błąd podczas publikowania aplikacji ClickOnce w programie Visual Studio 2010 i programie .NET Framework 4.5 z niestandardowymi wymaganiami wstępnymi

Ten artykuł zawiera informacje o usuwaniu błędu (plik zawiera ... Zmienione... lub może być uszkodzony) podczas publikowania aplikacji ClickOnce w programie Microsoft Visual Studio 2010 i programie .NET Framework 4.5 lub nowszej wersji.

Oryginalna wersja produktu: Visual Studio Premium 2010, Visual Studio Professional 2010, Visual Studio Ultimate 2010, .NET Framework 4.5
Oryginalny numer KB: 3072421

Objawy

Podczas publikowania aplikacji ClickOnce przy użyciu programu Visual Studio 2010 na komputerze, na którym zainstalowano program .NET Framework 4.5, 4.5.1, 4.5.2 lub nowszą wersję, pakiety wymagań wstępnych pakietu redystrybucyjnego nie są poprawnie pakowane, jeśli nie są podpisane. W związku z tym użytkownik otrzymuje następujący komunikat o błędzie po uruchomieniu Setup.exe:

Wystąpił błąd podczas instalowania składników systemowych dla <Application_Name>. Instalator nie może kontynuować, dopóki wszystkie składniki systemu nie zostały pomyślnie zainstalowane.
Instalator wykrył, że ścieżka pliku <do tymczasowej lokalizacji pliku> MSI została zmieniona od czasu jej początkowego opublikowania lub może być uszkodzona.
Aby uzyskać więcej informacji, zobacz plik dziennika instalacji znajdujący się w <ścieżce do pliku Install.log w katalogu tymczasowym w profilu> użytkownika.

Ponadto następujący wpis jest rejestrowany w pliku Install.log , aby wskazać, że weryfikacja skrótu nie powiodła się dla niepodpisanego pliku wymagań wstępnych:

Weryfikowanie integralności pliku ścieżki <do tymczasowej lokalizacji pliku MSI>
Weryfikowanie skrótu pliku
Błąd: Instalator wykrył, że ścieżka pliku <do tymczasowej lokalizacji pliku> MSI została zmieniona, ponieważ została początkowo opublikowana lub może być uszkodzona.

Przyczyna

Ten problem występuje, ponieważ proces kompilacji generuje skrót pliku wymagań wstępnych przy użyciu algorytmu wyznaczania wartości skrótu SHA2, gdy pakuje plik wymagań wstępnych. Jednak Setup.exe plik próbuje odczytać skrót przy użyciu algorytmu SHA1. W związku z tym niezgodność występuje między oczekiwanymi skrótami a rzeczywistymi skrótami, a Setup.exe określa, że plik .msi ma być brakujący lub uszkodzony.

Rezolucja

Aby rozwiązać ten problem, upewnij się, że plik niestandardowego wymagania wstępnego (.msi) jest podpisany, aby nie wygenerować problematycznego skrótu.

Alternatywnie użyj programu Visual Studio 2012 lub nowszej wersji. Te wersje programu nie mają tego problemu.

Więcej informacji

Program Visual Studio 2010 uruchamia zadania PROGRAMU MSBUILD dystrybuowane za pomocą programu .NET Framework w zestawie Microsoft.Build.Tasks.v4.0.dll . Jeśli na komputerze dewelopera zainstalowano program .NET Framework 4.5 lub nowszą wersję, to zadanie kompilacji generuje skrót SHA2 pliku wymagań wstępnych, jeśli ten plik nie jest podpisany. Podczas instalacji na komputerze użytkownika nie można zweryfikować tego skrótu przez aparat programu inicjujący (Setup.exe), który jest generowany przez program Visual Studio 2010.