progetto di installazione Web non riesce a installare sito dinamico-dati: “il programma di installazione è stato interrotto”

StackOverflow https://stackoverflow.com/questions/4760572

Domanda

L'ultima fase del programma di installazione non riesce con questo messaggio:

Installazione incompleta

Il programma di installazione è stato interrotto prima [del progetto] potrebbe essere installato. È necessario riavviare il programma di installazione per riprovare.

Esecuzione spettacoli msiexec /i installer.msi /l*vx setup.log le seguenti voci nel Registro di installazione:

INFO   : [...] [ApplyWebFolderProperties]: Getting web folder property token...
INFO   : [...] [ApplyWebFolderProperties]: Token is '/LM/W3SVC/1/ROOT/ProjectDir/DynamicData/Filters'.
INFO   : [...] [ApplyWebFolderProperties]: Getting METADATA_HANDLE for the directory '/LM/W3SVC/1/ROOT/ProjectDir/DynamicData/Filters'.
ERROR  : [...] [ApplyWebFolderProperties]: FAILED:  -2147024893
ERROR  : [...] [ApplyWebFolderProperties]: FAILED:  -2147024893
ERROR  : [...] [ApplyWebFolderProperties]: Custom Action failed with code: '3'
ERROR  : [...] [ApplyWebFolderProperties]: Custom Action failed with code: '3'
INFO   : [...] [ApplyWebFolderProperties]: Custom Action completed with return code: '3'

La stessa applicazione web non ha avuto problemi in fase di installazione con un progetto di installazione web prima. La questione è iniziata dopo l'aggiornamento dell'applicazione web da NET 3.5 SP1 per .NET 4.0.

È stato utile?

Soluzione

punti questo blog fuori dalla problema:

Il che mi ha iniziato il pensiero, ho una sottocartella denominata filtri . Mutevole altro che rinominare i filtri sottocartella fatta terminare correttamente. io sono supponendo che si può avere la stessa problemi con AppPools cartelle denominate, informazioni, o 1 pure.

(enfasi mia)

Purtroppo, Filtri è un hard-coded cartella di nome Dynamic Data. Se si guarda a FilterFactory , ci doesn' t sembra essere un modo per ignorare tale valore, visto che la proprietà FilterFactory di Metamodel non è contrassegnato virtuale. Se non possiamo cambiare il nome della cartella, quindi dobbiamo guardare al fixing il programma di installazione ...

L'errore di installazione viene sollevata dalla ApplyWebFolderProperties un'azione personalizzata. Che l'azione non è built-in di Windows Installer è aggiunto dal Web Setup Project. Questo è utile, perché significa che possiamo rimuovere con WiRunSQL.vbs :

cscript WiRunSQL.vbs installer.msi "DELETE FROM CustomAction WHERE Action='WEBCA_ApplyWebFolderProperties'" 

Si noti che il nome effettivo del ApplyWebFolderProperties è WEBCA_ApplyWebFolderProperties. Visto che non sembra l'azione essere documentata da nessuna parte, caveat emptor. Non sembra essere troppo terribilmente importante però.

Per automatizzare la soluzione, è possibile aggiungere il comando per PostBuildEvent del progetto di installazione in questo modo:

cscript.exe "$(ProjectDir)..\WiRunSQL.vbs" "$(BuiltOuputPath)" "DELETE FROM CustomAction WHERE Action='WEBCA_ApplyWebFolderProperties'"

Se qualcuno conosce un modo migliore di installare una cartella denominata Filtri , mi piacerebbe sentirla.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top