2010-06-02 12 views
8

Per cominciare, non so molto di implementazione. Spero che la mia domanda abbia un senso.Come distribuire un'applicazione C# mentre si includono file DLL di terze parti?

Ho bisogno di installare/distribuire un'applicazione C# su un numero di desktop. Ha bisogno di un file DLL di terze parti: una libreria C++ ("lpsolve55.dll", per chi fosse interessato, è un solutore MIP/LP gratuito, vedi lpsolve.sourceforge.net/5.5/). Io lo uso nel mio codice nel seguente modo:

[DllImport("lpsolve55.dll", SetLastError = true)] 
    public static extern bool add_column(int lp, double[] column); 

Per il test, ho copiato manualmente il file dll per a project\bin\release, e funziona benissimo.

La mia domanda: Avrò bisogno di un programma di installazione per l'applicazione, che gestirà che il dll verrà installato pure. Sto prendendo in considerazione l'implementazione di ClickOnce dal momento che sto utilizzando Visual C# 2008 Express Edition, ma qualsiasi soluzione non troppo dispendiosa funzionerà.

Che consiglio daresti?

risposta

1

Se ClickOnce ha la capacità di portare con sé il file DLL e copiarlo nella cartella dell'applicazione, lo userei. Sarebbe anche meglio se potesse controllare se il file DLL è presente sul sistema (cartella system32) e usarlo, quindi non si hanno diverse versioni di un binario sul computer di destinazione.

10

Basta aggiungere la DLL al progetto in Visual Studio.

  • destro progetto click in Solution Viewer
  • Seleziona Aggiungi - elemento esistente
  • Sfoglia alla DLL e fare clic su Aggiungi o la piccola freccia accanto al pulsante Aggiungi e Aggiungi come collegamento
  • Seleziona la tua DLL nella soluzione Visualizzatore
  • Fare clic destro e selezionare Proprietà
  • Impostare Operazione di generazione a Contenuti
  • Set Copia nella directory di output-Copia se più recente

Ora il vostro file verrà automaticamente copiato nella cartella di debug o rilascio.

Per l'implementazione è possibile aggiungere un progetto di installazione alla soluzione. Quando si aggiunge l'output del primo progetto al progetto di installazione, la DLL verrà automaticamente aggiunta all'installazione.

Ma un progetto di installazione è un'area completamente nuova. Quindi inizia a lavorarci e fai una nuova domanda se ti blocchi.

+1

Questo funzionerà per i file DLL. Tuttavia, non per es. File XML per impostazione predefinita in quanto saranno contrassegnati come "File di dati" (colonna "Stato di pubblicazione") e di conseguenza non copiati nella directory di installazione dell'applicazione ClickOnce durante l'installazione (vedere * [A.il file di distribuzione non sta distribuendo un file XML] (http://stackoverflow.com/questions/2344083/) *). La correzione è di cambiare "File di dati" in "Includi". –

2

Puoi semplicemente includere la dll nel tuo progetto e distribuire il tutto con ClickOnce. Aggiungilo alla tua soluzione, imposta l'azione di costruzione su "contenuto". Imposta "copia su directory di output" su "copia sempre". Quando pubblichi, dovresti essere in grado di vedere il file nella cartella di pubblicazione. Puoi anche controllare la finestra di dialogo File dell'applicazione (nella scheda Pubblica delle proprietà del progetto) per assicurarti che venga inclusa.

Problemi correlati