2015-08-13 8 views
6

Abbiamo utilizzato per un po 'l'eccellente libreria Unmanaged Exports di Robert Giesecke con la nostra applicazione Delphi. Abbiamo appena aggiornato a Visual Studio 2015 e non sembra funzionare più - posso compilare lo stesso identico progetto in VS2013 e funziona correttamente, posso accedere alle funzioni nella DLL, ecc. Ricompilare in VS2015 (esattamente lo stesso codice e progetto) e ho un errore di generazione sulla biblioteca le esportazioni non gestiti come illustrato di seguito:Errore di generazione di Unmanaged Exports e Visual Studio 2015 di Robert Giesecke

Task Parameter:SdkPath=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\ (TaskId:44) 
Cannot find lib.exe in 'K:\Visual Studio 2015\Common7\IDE\\..\..\VC\bin'. (TaskId:44) 
Done executing task "DllExportAppDomainIsolatedTask" -- FAILED. (TaskId:44) 
Done building target "RGieseckeDllExport" in project "BWSITwilio.csproj" -- FAILED.: (TargetId:73) 

e come tale la biblioteca non esportare le funzioni nella DLL per me, per l'accesso a Delfi. Posso rimanere in VS2013 per un po 'ma qualcosa sembra sbagliato con la libreria in VS2015 (forse guardando nella cartella NETFX 4.6 ??)

Sono aperto alle idee in modo da poter utilizzare VS2015 - Stavo per disinstallare 2013 ma devi resistere ora.

Grazie in anticipo per qualsiasi input o consiglio: è proprio questa libreria che ci ha permesso di continuare a utilizzare Delphi dato che con esso è possibile accedere a qualsiasi cosa in .NET!

+0

Hai provato a rintracciare l'autore? Dal messaggio di errore, sembra che 'lib.exe' sia stato spostato all'interno dell'albero di installazione VS da dove questo strumento si aspettava che fosse, o forse è stato eliminato interamente da VS2015 (non ce l'ho ancora installato). –

+0

Per me 'lib.exe' risiede in' C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin' nella mia installazione completa Visual Studio 2015 Enterprise. Quale versione di Visual Studio 2015 stai usando? – jessehouwing

+0

Perché non si targetizza un runtime .net inferiore? Robert sta usando una magia non supportata e avrà bisogno di tempo per rimettermi. Immagino che Robert sia qui sullo Stack in modo da poterlo pingare. Penso che sia la strada da seguire. La modalità mista C++/CLI consentirebbe di uscire da questa dipendenza. –

risposta

2

le note di rilascio per la versione 1.2.7 (del 16 agosto 2015) su Nuget includono questo:

non fallisce la compilazione quando non riesce a trovare LIB.EXE

I sospetto che tu stia utilizzando una versione precedente e puoi risolvere il tuo problema spostandoti al più tardi.

Probabilmente si sta utilizzando una versione che è stato costruito prima del VS 2015 è stato rilasciato e sono sicuro che la versione più recente di Robert ora supporta VS 2015.

Per quello che vale, anche se lib.exe ancora non può essere trovato che non sta andando per darti fastidio dato che non hai bisogno di un file .lib da importare in Delphi.

0

Mi trovavo di fronte allo stesso problema ed è stato in grado di risolvere questo problema copiando manualmente alcuni file di Visual Studio 2013 nella cartella 2015. Ho cercato lib.exe sul mio computer e ho utilizzato Beyond Compare con le directory dei file di programma delle due applicazioni.

  • aperto C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\ in Explorer, selezionare tutti i file, Copia.
  • Aprire C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\ in Explorer, Incolla. Quando viene richiesto di sostituire, scegliere Salta.

Dopo aver eseguito questa operazione, sono riuscito a compilare nuovamente i progetti che utilizzavano RGiesecke.DllExport in Visual Studio 2015.

Non posso dirvi quale versione specifica del 2013 avevo installato perché da allora ho disinstallato, ma a quanto pare questi file sono rimasti. Sto eseguendo MS VS Community 2015 versione 14.0.23107.0.

Non sono sicuro se è rilevante, ma lo lib.exe che ho copiato dalla versione della cartella bin del 2013 legge 12.0.21005.1.

+1

2015 viene fornito con lib.exe, ovviamente –

+0

Ulteriori informazioni: questo succede se non si installano le librerie C++. Professionale e superiore lo fa automaticamente, ma Express no. – ikathegreat

+0

Devo votare questo terribile consiglio. Reperire la directory bin non è la soluzione. Si prega di rimuovere questo post. Trasformerai solo gli altri. –

Problemi correlati