Ho creato un'applicazione .NET C# WinForms su Win 7 RTM x64, che diciamo che ho chiamato DataInstaller.Assistente compatibilità programmi pensa che la mia app sia un installatore
Quando eseguo questo programma all'esterno del debugger (solo un modulo vuoto senza funzionalità al momento), funziona correttamente finché non chiudo il modulo. Allora ottengo un messaggio dalla compatibilità programmi che dice:
Questo programma non sia stato installato correttamente
Allora ottengo l'opzione per reinstallare utilizzando le impostazioni consigliate o di dire che l'installazione ha funzionato come previsto.
Se nome l'app 'DataThingy' questo non è un problema, immagino sia correlato al modo in cui i programmi denominati * Setup ottengono un'icona di scudo UAC.
Suppongo che ci sarà qualcosa di semplice che posso inserire nel manifest dell'applicazione per impedirlo?
Non sono sicuro se questo si verifica in Vista perché attualmente non ho accesso.
Cambiare il nome non è un'opzione e disattivare il controllo dell'account utente non è un'opzione, quindi non suggerire questo!
Modifica:
OMG.
Sembra che se uno dei seguenti sono vere, UAC attacca il suo remo:
nome Exe contiene la parola Installer
AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
'Installer' può anche essere 'Setup'.
La credenza mendicante, lo fa davvero. Ovviamente uno dei vecchi programmatori VB6 è stato trasferito nel team UAC a Redmond.
Ho ancora bisogno di una soluzione alternativa, non sono disposto ad accettare che la mia applicazione non possa essere chiamata un programma di installazione perché non tocca il registro o inserisce alcun file nella cartella Programmi.
Suppongo che l'UAC avrebbe messo la macchina in blocco totale se ho provato a eseguire la mia applicazione denominata IAmAVirus.exe. (In realtà, non lo provo perché non sono del tutto convinto di essere solo sciocco)
In realtà, Windows controlla solamente il nome del file per parole come "setup" o "install" per determinare se qualcosa è un programma di installazione o meno. Sì, è stupido ... Si può fare qualcosa al riguardo? Mi chiedo ... Buona Q, però. –
Lo spero, perché è tutto un po 'troppo magico per i miei gusti .. grazie per il voto! – Carl
@Wim - No, sembra essere AssemblyTitle come suggerisce il post. Verificato sulla mia macchina Win7 SP1 per PackageInstaller.exe - nessun problema se il titolo assembly è PackageNstaller –