Interfejs IVsProjectUpgrade
Zaimplementowane przez obiekty projektu, które trzeba uaktualnić projekt formatów plików między różnymi wersjami programu Visual Studio.
Przestrzeń nazw: Microsoft.VisualStudio.Shell.Interop
Zestaw: Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)
Składnia
[InterfaceTypeAttribute(1)]
[GuidAttribute("75661D39-F5DA-41B9-ABDA-9CF54C6B1AC9")]
public interface IVsProjectUpgrade
[InterfaceTypeAttribute(1)]
[GuidAttribute("75661D39-F5DA-41B9-ABDA-9CF54C6B1AC9")]
public interface class IVsProjectUpgrade
[<InterfaceTypeAttribute(1)>]
[<GuidAttribute("75661D39-F5DA-41B9-ABDA-9CF54C6B1AC9")>]
type IVsProjectUpgrade = interface end
<InterfaceTypeAttribute(1)>
<GuidAttribute("75661D39-F5DA-41B9-ABDA-9CF54C6B1AC9")>
Public Interface IVsProjectUpgrade
Metody
Nazwa | Opis | |
---|---|---|
![]() |
UpgradeProject(UInt32) | Wywołana przez środowisko, aby ustalić, czy obiekt projektu musi uaktualnić projekt do nowej wersji. |
Uwagi
Gdy użytkownik próbuje otworzyć projektu, UpgradeProject jest wywoływana przez środowisko naturalne, po otwarciu projektu i przed innych użytkowników mogły zostać podjęte działania w ramach projektu.Jeśli miała już został monit o uaktualnienie rozwiązania, a następnie UPF_SILENTMIGRATE jest przekazana flaga grfUpgradeFlags parametru.Jeśli użytkownik otworzy projekt bezpośrednio, jak w Dodać istniejący projekt, a następnie UPF_SILENTMIGRATE flaga nie jest przekazywana i projekt musi monituje użytkownika o uaktualnienie.
W odpowiedzi na UpgradeProject rozmowy, należy ocenić projektu, czy plik projektu zostanie uaktualniony.Jeśli projekt nie jest konieczne typ projektu uaktualnienia do nowej wersji, a następnie można po prostu zwrócenia S_OK.
Jeśli projekt wymaga uaktualnienia typ projektu do nowej wersji, a następnie należy określić, czy plik projektu mogą być modyfikowane przez wywołanie QueryEditFiles i przekazując wartość QEF_ReportOnly do rgfQueryEdit parametru.Następnie projekt musi wykonać następujące czynności:
Jeśli tagVSQueryEditResult wartość zwracana w pfEditCanceled jest parametr QER_EditOK, a następnie uaktualnienia można kontynuować, ponieważ może być zapisany plik projektu.
Jeśli tagVSQueryEditResult wartość zwracana w pfEditCanceled jest parametr QER_EditNotOK i tagVSQueryEditResultFlags ma wartość QER_ReadOnlyNotUnderScc jest ustawiony bit, następnie UpgradeProject musi zwracać błąd, ponieważ użytkownik powinien rozwiązać uprawnienia wydawania swoich.Projekt powinien następnie wykonać następujące czynności:
Raportowanie błędów przez użytkownika, wywołując ReportErrorInfo.
Zwraca VS_E_PROJECTMIGRATIONFAILED kod błędu UpgradeProject.
Jeśli tagVSQueryEditResult wartość jest QER_EditNotOK i tagVSQueryEditResultFlags ma wartość QER_ReadOnlyUnderScc jest ustawiony bit, a następnie plik projektu należy wyewidencjonowany przez wywołanie QueryEditFiles()QEF_ForceEdit_NoPrompting | QEF_DisallowInMemoryEdits,...).
Jeśli QueryEditFiles zadzwonić na przyczyny pliku projektu "wyewidencjonować"i "Pobierz najnowszą wersję", a następnie projektu zostaną rozładowane i ponownie załadowane.UpgradeProjectbędzie wywoływana ponownie po utworzeniu instancji innego projektu.W tym drugie wywołanie pliku projektu mogą być zapisywane na dysku; Projekt należy zapisać kopię pliku projektu w poprzednim formacie (z.STARE rozszerzenie), zmiany jego potrzeby uaktualnienia i zapisać plik projektu w nowym formacie.Ponownie, jeśli jakiejkolwiek części procesu uaktualniania nie powiedzie się, metoda powinna zwrócić błąd (VS_E_PROJECTMIGRATIONFAILED).Spowoduje to projektu, które mają być wyładowane w Solution Explorer.
[!UWAGA]
W wystąpieniu pierwszego projektu (Project1) jest umieszczona w stanie nieaktywne, a następnie musi zwracać wartość S_OK z pierwsze wywołanie na UpgradeProject wdrożenia.
Przykładowa implementacja interfejsu, zobacz Basic Project.
Uwagi dotyczące implementacji:
Wdrożenie uległy zmianie informacji utrwalone w pliku projektu między starszych i bieżącej wersji programu Visual Studio produktu.Środowisko pobiera ten interfejs, wywołując QueryInterface z IVsHierarchy.
Zobacz też
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop
Powrót do początku