2013-05-07 26 views
6

sto lavorando con un programma di installazione WIX e continuo a ricevere questo messaggio di errore:Quali sono le cause di un 1723 DLL non trovato errore in un programma di installazione WIX

WIX Errore 1723. C'è un problema con questo pacchetto di Windows Installer . Non è stato possibile eseguire una DLL necessaria per completare questa installazione.

Sono presenti altri problemi che potrebbero causare l'errore 1723 non correlato alla DLL non trovato?

Posso dire con certezza al 100% che la DLL deve essere trovata perché le precedenti azioni personalizzate nello stesso programma di installazione funzionano e tutti utilizzano la stessa DLL.

Ho avuto questo errore in precedenza e l'ho risolto rinominando l'azione personalizzata, quindi ho pensato che fosse correlato alla lunghezza del nome consentito per l'azione personalizzata. Questa volta ho provato sia un nome più breve che un nome la lunghezza esatta di altre azioni personalizzate di lavoro e ancora ottengo questo errore.

Ho studiato le cause del 1723 e il più comune sembra essere che il programma di installazione non riesca a decomprimere la DLL a causa dei diritti di accesso. Sebbene questo sia molto improbabile dato che altre azioni personalizzate nello stesso file che fanno riferimento alla stessa DLL funzionano bene, mi sono assicurato che la cartella a cui l'installer sta tentando di accedere abbia accesso completo per questo utente, inoltre sto eseguendo il programma di installazione da un prompt dei comandi nell'amministratore modalità così non dovremmo avere problemi lì.

+0

Questo non è un codice di errore del set di strumenti WiX, quindi sono un po 'confuso. Lo ottieni da Windows Installer (MSI) durante un'installazione? Se è così puoi condividere un po 'più di informazioni sull'azione personalizzata, quali sono le sue dipendenze, ecc.? –

+0

Non si tratta di un errore del toolset WIX, per quanto posso dire che è un codice di errore standard per un programma di installazione di Windows che non è in grado di trovare la DLL. Tuttavia sono abbastanza sicuro che WIX non stia creando correttamente l'installer. Penso/spero di aver appena scoperto che la causa è un _ nel nome dell'azione personalizzata. – Purplegoldfish

+0

Bene, abbiamo bisogno di maggiori dettagli su come stai includendo l'azione personalizzata nel tuo MSI e in che modo l'azione personalizzata. Dll è stata creata per essere veramente utile. –

risposta

0

Ho battuto la testa contro il muro per settimane con questo stesso problema. La mia soluzione è arrivata non solo rinominando il nome del metodo di azione personalizzato, ma rinominando l'id nello CustomAction.

<CustomAction Id="CA_InstallerDll.install" 
       BinaryKey="B_CustomAction_CA" 
       DllEntry="Install_InstallerDll" 
       Execute="deferred" 
       Return="check" 
       Impersonate="no"/> 

... al ...

<CustomAction Id="CA_DllInstaller.install" //changed InstallerDll to DllInstaller 
       BinaryKey="B_CustomAction_CA" 
       DllEntry="Install_DllInstaller" //Changed the CA Method name too 
       Execute="deferred" 
       Return="check" 
       Impersonate="no"/> 

io non sono sicuro se questo è ciò che si intende per "rinominando l'azione personalizzata", ma questo è ciò che ha riparato per me. L'altra cosa frustrante era che, anche se fossi andato a rinominarlo allo InstallerDll, avrebbe comunque fallito per lo stesso motivo.

+1

Sì, questo è quello che ho fatto, in pratica ho cambiato l'ID dell'azione personalizzata e il nome del metodo per rimuovere _ e le cose sembrano funzionare. – Purplegoldfish

4

WIX 3.x (più specificamente MakeSfxCA) ha un bug noto che potrebbe produrre file dll nativi non corretti che portano a un errore "1723". Il bug viene attivato in base ai nomi delle azioni personalizzate (i metodi decorati con l'attributo "CustomAction").

Se si dispone di due azioni personalizzate con lo stesso prefisso seguito da una minuscola, l'altra seguita da una lettera maiuscola (che si trova più avanti nell'alfabeto), è possibile che si verifichi l'errore "1723". Per esempio. due azioni personalizzate denominate "isactive" e "isBlocked" sono fastidiose.

Questo ha a che fare con MakeSfxCA che ordina erroneamente i punti di ingresso dei metodi esportati.

Cfr. http://wixtoolset.org/issues/4502 per il problema WIX e Adding a new Custom Action to a project prevents an existing Custom Action from being run per ulteriori dettagli tecnici.

+0

Anche se è stato corretto in 3.8/9, ho riscontrato un problema relativo al prefisso comune delle azioni personalizzate in 3.10 –

1

Ho ricevuto questo errore ultimamente e il problema era una dipendenza DLL. La mia DLL aveva altre dipendenze DLL che erano presenti sulla mia macchina di sviluppo e non erano sul computer di destinazione se avessi visto l'errore. Puoi controllare le tue dipendenze con il Dipendente Walker http://www.dependencywalker.com per scoprire se questo è il caso. Questo sicuramente mi ha aiutato.

1

we'e speso mesi per affrontare sanguinosa error 1723.

Dopo la decompilazione da dumpbin /Exports CustomAction.CA.dll (eseguibile da strumenti studio sviluppatore Visual), ci sono voci in ordine nel seguente modo:

121 78 000039DE Dev***************** 
122 79 000039F4 DML***************** 
123 80 00003A0A DoN***************** 

Partendo dal presupposto che l'ordinamento deve essere fatto utilizzando ASCII sembra che questo non è corretto. La lettera grande M deve essere prima della lettera minuscola e pertanto le voci 121 e 122 devono essere sostituite.

Abbiamo riprodotto tale questione su Wix 3.9 R2 tuttavia su alcuni Windows 7 Ultimate macchine virtuali problema non si è verificato, ma era riproducibile su Windows 7 Enterprise.

Per noi la soluzione è stato quello di cambiare in progetto CustomAction, nome CustomAction da DML ********* ******** a DML fare ordinamento funziona correttamente.

PS: Stavo cercando di dare quel feedback direttamente sulla pagina web WiX, tuttavia, non ho potuto registrare.

+0

Wix utilizzato per avere un [errore] (http://wixtoolset.org/issues/4502/) quando si ordinano le voci, ma questo è fisso in Wix 3.9 RC3 in poi. Puoi ricontrollare la versione wix, per favore. Per ulteriori informazioni tecniche, guarda [qui su SO] (http://stackoverflow.com/a/25299512/2300713). – Hille

+0

Il problema esiste in 3.10 su Win10 di sicuro, non so se è a causa dell'ordine, ma ho anche ricevuto un errore con prefisso comune. –

0

Per me, è stata la ridenominazione del metodo di azione personalizzato. Ho cambiato una lettera dalla minuscola alla maiuscola e ho dimenticato di cambiarla anche nell'XML.

0

Nel mio caso, ho dovuto compilare il progetto CustomActions prima e quindi compilare il progetto di installazione.