Utworzyłem aplikację .NET C# WinForms na Win 7 RTM x64, co powiedzmy, nazwałem DataInstaller.Asystent zgodności programów myśli, że moja aplikacja jest instalatorem
Po uruchomieniu tego programu poza debuggerem (tylko pusty formularz bez tej funkcji), działa poprawnie, dopóki nie zamknę formularza. I wtedy pojawia się komunikat z Asystent zgodności programów, które mówi:
Ten program może nie być prawidłowo zainstalowana
I wtedy się możliwość ponownej instalacji przy użyciu ustawień zalecanych lub powiedzieć, że instalacja nie działa zgodnie z oczekiwaniami.
Jeśli nazwę aplikacji "DataThingy", to nie jest problem, myślę, że jest to związane ze sposobem, w jaki programy o nazwie * Setup zyskują ikonę tarczy UAC.
Zakładam, że będzie coś prostego, co mogę umieścić w manifeście aplikacji, aby temu zapobiec?
Nie jestem pewien, czy to zdarza się w systemie Vista, ponieważ nie mam dostępu.
Zmiana nazwy nie jest opcją i wyłączenie funkcji Kontrola konta użytkownika nie jest opcją, więc nie sugeruj tego!
Edytuj:
OMG.
Wydaje się, że jeśli którykolwiek z poniższych są prawdziwe, UAC wciska swoje wiosło w:
nazwa zawiera instalator exe Word
AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
'Instalatora' może również być "Setup".
To żebrak wierzy, to naprawdę robi. Oczywiście jeden ze starych programistów VB6 został przeniesiony do zespołu UAC w Redmond.
Nadal potrzebuję obejścia, nie jestem gotów zaakceptować, że moja aplikacja nie może być nazwana instalatorem, ponieważ nie dotyka ona rejestru ani nie umieszcza żadnych plików w folderze Program Files.
Zakładam, że UAC spowodowałoby całkowite zablokowanie maszyny, gdybym próbował wykonać moją aplikację o nazwie IAmAVirus.exe. (Właściwie, nie śmiem tego wypróbować, ponieważ nie jestem całkowicie przekonany, że jestem po prostu głupi)
W rzeczywistości system Windows po prostu sprawdza nazwę pliku dla takich słów, jak "setup" lub "install", aby określić, czy coś jest instalatorem, czy nie. Tak, to głupie ... Czy można coś z tym zrobić? Zastanawiam się ... Dobra Q, chociaż. –
Mam nadzieję, że tak, ponieważ to wszystko jest trochę zbyt "magiczne stringy" dla mojego gustu .. dziękuję za głosowanie! – Carl
@Wim - Nie, wydaje się być AssemblyTitle tak, jak sugeruje post. Zweryfikowano na moim komputerze Win7 SP1 dla PackageInstaller.exe - nie ma problemu, jeśli tytuł zestawu jest PackageNstaller –