Ho una libreria di classi C# che fa riferimento a System.Data.SQLite (from nuget). Questa è la struttura della mia cartella bin dopo la generazione:Visual Studio - Installazione InstallShield in un progetto con System.Data.SQLite
- MyProject.dll
- System.Data.SQLite.dll
- x86/SQLite.Interop.dll
- x64/SQLite.Interop .dll
System.Data.SQLite
bisogno della SQLite.Interop
a correre e la DLL corretta è trovato in fase di esecuzione. Tuttavia, quando viene generata un'installazione con InstallShield che include l'output primario del progetto, le cartelle x86 e x64 non vengono copiate e la mia applicazione non riesce a funzionare.
C'è un modo per forzare Visual Studio per includere le cartelle x86 e x64 nell'output principale?
c'è alcun modo per includere le cartelle manualmente nella InstallShield con relativa percorso?
Il mio ambiente:
- Visual Studio 2012 professionisti
- Install Shield 2013 Limited Edition (Free)
- System.Data.SQLite 1.0.96
Quelli suonano come dipendenze piuttosto che come output primario, ma ricorda che i gruppi di output sono per comodità piuttosto che per controllo. Se si desidera il pieno controllo della configurazione, è meglio selezionare i file in modo statico. –
Sfortunatamente, le cartelle x64 e x86 sono gestite dal pacchetto Nuget, quindi l'unico modo che ho trovato è di usare un percorso assoluto. Funziona, ma ogni sviluppatore dovrà configurarlo al suo interno. Sarebbe bello se potessi usare un percorso relativo ma non ho trovato come con la versione gratuita. – Rafael
@ Rafael Solo per quello che sai. È possibile modificare manualmente il file setup.isl da 'c: \ yourpath \ packages \ System.Data.SQLite.Core.1.0.94.0 \ build \ net40 \ x86 \ SQLite.Interop.dll' a' <ISProjectFolder>. . \ packages \ System.Data.SQLite.Core.1.0.94.0 \ build \ net40 \ x86 \ SQLite.Interop.dll' (o dove mai hai il tuo SQLite.Interop localizzato) – Markus