Azione personalizzata WIX: usa dllimport

Ho un programma di installazione WiX e azioni personalizzate. Ho aggiunto la libreria C # come riferimento al progetto dell’azione personalizzata. Questa dll C # utilizza DllImport in una dll C ++. Durante l’installazione ricevo errore: imansible caricare DLL mycpp.dll : modulo specificato non trovato. Ho aggiunto mycpp.dll al progetto CA e ho provato a utilizzare le proprietà: risorsa incorporata, copia nella directory di output, ma nessun risultato. Come posso fare in modo che il mio programma di installazione trovi mycpp.dll ?

Ho avuto questo problema prima. Dopo aver letto i file MSBuild per wix, alla fine ho trovato una proprietà che viene usata come lista per le dll necessarie nel pacchetto autoestraente che contiene la dll di azione personalizzata.

in wix.ca.targets (nella cartella sdk) esiste una proprietà chiamata CustomActionContents che viene utilizzata durante l’esecuzione di makefxca.

Ecco il commento per questo set di bersagli di msbuild che raggruppano la tua dll di azioni personalizzate.

  

e

  

Quindi sembra che tu possa marcare il tuo riferimento a mycpp.dll come copia locale e che verrà prelevato automaticamente oppure puoi aggiungere una nuova proprietà nel tuo progetto di azione personalizzato (probabilmente modifica il csproj e aggiungi la proprietà) che contiene il percorso alla dll e verrà raccolto.