Come imposto il percorso di un file DLL in Visual Studio?

Ho sviluppato un’applicazione che dipende da un file DLL. Quando eseguo il debug dell’applicazione, l’applicazione si lamenterà che:

“Questa applicazione non è stata avviata perché xxx.dll non è stato trovato.”

Quindi devo copiare il file DLL nella stessa directory del mio file .vcproj.

C’è un modo per impostare il progetto per cercare il file DLL in (preferibilmente) un percorso relativo o (non preferito) un percorso assoluto?

Concetto simile al modo in cui impostiamo l’inclusione e il percorso della libreria nelle impostazioni del progetto.

Voglio dire, quando eseguo il debug dell’applicazione (premendo F5 ), si apre l’errore sopra riportato.

  1. Vai alle proprietà del progetto (Alt + F7)
  2. In Debug, guarda a destra
  3. C’è un campo ambientale.
  4. Aggiungi il tuo percorso relativo lì (relativo alla cartella vcproj) cioè .. \ some-framework \ lib aggiungendo PATH=%PATH%;$(ProjectDir)\some-framework\lib o prepending al path PATH=C:\some-framework\lib;%PATH%
  5. Premi F5 (debug) di nuovo e dovrebbe funzionare.

Il percorso di ricerca che il caricatore utilizza quando si chiama LoadLibrary () può essere modificato utilizzando la funzione SetDllDirectory () . Quindi puoi semplicemente chiamare questo e aggiungere il percorso alla tua dipendenza prima di caricarlo.

Vedi anche Ordine di ricerca DLL .

Passare attraverso le proprietà del progetto -> Percorsi di riferimento

Quindi aggiungere la cartella con le DLL

Un’altra possibilità sarebbe quella di impostare la Working Directory sotto le opzioni di debug per essere la directory che ha quella DLL.

Modifica: stavo per menzionare l’utilizzo di un file batch per avviare Visual Studio (e impostare la variabile PATH nel file batch). Quindi ho fatto un po ‘di ricerche e ho visto che questa stessa identica domanda è stata posta non molto tempo fa in questo post . La risposta suggerisce l’opzione del file batch e le impostazioni del progetto che a quanto pare potrebbero fare il lavoro (non l’ho testato).

So che questa domanda aveva avuto risposta anni fa, ma per quelli come me che dovevano cambiare il punto in cui il debugger avvia l’applicazione, cambia la proprietà del comando in Proprietà del progetto -> Debug.