Domanda

Sto chiamando una dll non.NET dal mio progetto usando P / Invoke, nel senso che il .dll deve essere sempre presente nella directory .exe.

Esiste un modo per dire a Visual Studio di questa dipendenza, in modo che copierà automaticamente la DLL nella directory di output durante la compilazione e includerà automaticamente la DLL nella configurazione? O devo farlo manualmente?

È stato utile?

Soluzione

Puoi copiare / collegare questo / i file al progetto e nelle finestre delle proprietà imposta " Build Action " a " Nessuno " e " Copia nella directory di output " a " Copia se più recente " oppure " Copia sempre " ;.

Oppure puoi utilizzare un " Eventi pre-compilazione " & Amp; " Eventi post-build " dove puoi specificare qualsiasi script batch.

Preferisco la seconda opzione, perché in questo modo è più flessibile della prima.

Inoltre puoi modificare un file MSBuild e aggiungere un'attività per copiare i file.

Altri suggerimenti

Puoi semplicemente aggiungere il .DLL al tuo progetto.

Seleziona il riquadro Proprietà per quel file e imposta Crea azione su Contenuto e Copia nella directory di output su Copia se più recente .

Penso che un problema con l'aggiunta di un .DLL al progetto sia che potrebbero essere necessarie diverse versioni di una DLL per build di debug e release. Penseresti di poter aggiungere al file sia le versioni di debug che quelle di rilascio della DLL e, in base alle configurazioni, escludere quella inappropriata, ma non sono riuscito a trovare un modo per farlo. Sto usando Visual Studio 2010. Sono sicuro che ha funzionato ai vecchi tempi con VS6.

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