Krótki opis
Pakiety aplikacji wirtualnych zawierają manifest udostępniający wszystkie podstawowe informacje i ustawienia domyślne pakietu. Jeśli chcesz zmodyfikować te ustawienia domyślne dla określonego użytkownika lub grupy, możesz utworzyć i edytować plik konfiguracyjny użytkownika (UserConfig). Plik UserConfig file umożliwia określenie lub zmodyfikowanie ustawień niestandardowych pakietu. Te ustawienia zostaną zastosowane do konkretnego użytkownika, gdy pakiet zostanie wdrożony na komputerze z uruchomionym klientem App-V.
Objawy
Publikowanie pakietów aplikacji wirtualnych zawierających pliki UserConfig za pomocą konsoli zarządzania App-V może zakończyć się niepowodzeniem z powodu zmiany sposobu obsługi typów danych przez SQL Server 2016 i nowsze. Aby uzyskać więcej informacji na temat tej zmiany, zobacz KB4010261. Pakiety dotknięte tym problemem będą zawierać siedem cyfr reprezentujących milisekundy w sygnaturze czasowej, na przykład „2019-12-30T14:41:57.7433333”. Pakiety, które prawdopodobnie zostaną opublikowane pomyślnie, będą mieć dwie cyfry reprezentujące milisekundy w sygnaturze czasowej, na przykład „2019-12-30T14:41:50.58”.
W przypadku wystąpienia tego problemu może zostać wyświetlony następujący błąd w dzienniku w trybie informacji pełnej:
5756 [7]14D4.4320::12/10/19-08:28:34.9973489 [Microsoft.Windows.AppMan.AppV] LOGLEVEL=1, MESSAGE=Catalog: Failed to set the last modification time on policy file 'C:\Users\sgern\AppData\Roaming\Microsoft\AppV\Client\Catalog\Packages\{1D45F06B-874D-4A85-86EF-2330B430E47D}\{DB5DE6F6-15E8-4932-A7CF-2DA12EA5B068}\DynamicConfiguration.xml. Error code: 0x0FD0A725-00000057, FUNCTION=AppV::Client::Catalog::DocumentStoreImpl::SavePolicyDocumentToFile, LINENO=1078, UTCReplace_AppSessionGuid=true
Błąd 0x0FD0A725-00000057 jest zwracany z systemu Windows i oznacza „zły parametr”.
Obejście
Aby ograniczyć ten problem, może być potrzeba wykonania jednego z następujących kroków:
-
Opublikuj pakiet przy pomocy PowerShell.
-
Zmień poziom zgodności bazy danych na niższy niż 130.
-
Zmień typ danych kolumny używanej jako sygnatura czasowa.
Przykładowy skrypt do zmiany typu danych kolumny używanej jako sygnatura czasowa można znaleźć poniżej. Uwaga Musisz dostosować nazwę bazy danych w skrypcie do konkretnego środowiska. Ważne Przed uruchomieniem skryptów zaleca się wykonanie kopii zapasowej bazy danych.
USE AppVManagement
GO
ALTER TABLE dbo.PackageEntitlements ALTER column UserConfigurationTimestamp datetime2(3)
GO
ALTER TABLE dbo.PackageVersions ALTER column TimeAdded datetime2(3)
GO
ALTER TABLE dbo.PackageVersions ALTER column TimeChanged datetime2(3)
GO
ALTER TABLE dbo.PackageVersions ALTER column TimeEnabled datetime2(3)
GO
ALTER TABLE dbo.PublishingServers ALTER column LastPublishingAttempt datetime2(3)
GO
Uwaga Ten problem nie występuje, jeśli publikujesz pakiety aplikacji wirtualnych za pomocą programu PowerShell.