Używam Inno Setup do instalowania aktualizacji łatek dla mojej aplikacji VB.net, w której muszę zastąpić plik DLL i kilka plików javascript/html dla aktualizacja. Jednak biblioteka DLL nie jest aktualizowana (znajduje się w C: \ programach ...) - nawet w systemach XP bez UAC nie jest zastępowana, ale kiedy ręcznie usuwam bibliotekę DLL i ponownie uruchamiam poprawkę, plik zostaje skopiowany . To nie jest tylko do odczytu i nie ma przywileju UAC/administratora w przypadku XP.Konieczność nadpisania biblioteki DLL w instalatorze instalacyjnym inno - ale plik nie zostanie zastąpiony
Jaki może być powód, dla którego plik nie zostanie skopiowany, jeśli plik już istnieje? Jest zbudowany w VS2008 oraz w .NET 2.0 - nowa biblioteka DLL ma również bardziej aktualną różnicę w zakresie daty i rozmiaru.
Czy istnieje sposób na obejście problemu z dostępem do zapisu UAC w systemie Vista/Win7/8? Myślę, że łatka nigdy nie zastąpiłaby pliku w tych systemach UAC na. Powiedzenie naszej bazie użytkowników, aby ją wyłączyć, nie jest oczywiście opcją.
[EDYCJA] Zespół biblioteki dll jest pakowany do pliku setup.exe w programie Visual Studio, pobierając go z folderu Release podczas tworzenia rozwiązania. Konfiguracja inno jest sekcja [Plik] ma to:
[Files]
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\setup.exe; DestDir: {app}
Source: C:\Visual Studio 2005\Projects\Setup5\Setup5\Debug\interact.msi; DestDir: {app}
[Run]
Filename: {app}\setup.exe; Flags: runmaximized
Czy mógłbyś pokazać swój wpis w sekcji '[Files]' dla tej biblioteki? Co rozumiesz przez * "Czy istnieje sposób na obejście problemu z dostępem do zapisu UAC na Vista/Win7/8?" *, O czym myślisz? – TLama
Idealnie chcę, aby aktualizacja łatki wydarzyła się bez jakiejkolwiek interakcji z człowiekiem - tj. Nie mogę ich kliknąć na okno dialogowe z prośbą o uprawnienia administratora (UAC?), Gdy próbuję przenieść lub usunąć pliki, takie jak DLL. – Surge
Jeśli zamierzasz aktualizować/instalować pliki w katalogu "Program Files" w systemie Windows Vista, musisz po prostu poprosić o uprawnienia administratora, w przeciwnym razie nie uda się odmówić dostępu i w tym przypadku nie powinieneś jawnie określać wartość dyrektywy ['PrivilegesRequired'] (http://jrsoftware.org/ishelp/topic_setup_privilegesrequired.htm) (domyślnie wymaga uprawnień administratora). – TLama