2016-07-14 100 views
16

Ho il progetto .csproj e voglio fare riferimento ad altro progetto che è .xproj, tutto sembra a posto, ma quando provo a creare una soluzione, non posso perché manca la DLL. Quando faccio riferimento allo .dll da \bin\release\net452\..., allora tutto è ok. Come risolverlo?Come riferimento .xproj in .csproj?

EDIT: Non sto cercando soluzioni alternative: ora sto utilizzando gulp con gulp.move(). Funziona bene ma sembra sporco ...

+1

Anche lo stesso problema ... sono sicuro che funzionava a un certo punto, ma ora si rifiuta di giocare bene. – Adam

risposta

9

Non è possibile fare riferimento a un xproj direttamente da un csproj.

Hai 2 soluzioni possibili per questo.

A) Distribuire xproj come pacchetto NuGet e utilizzare il pacchetto NuGet nel proprio csproj.

B) Converti il ​​tuo csproj in un xproj.

Nota: xpro deve supportare il csproj .NET utilizzato. net451 ecc

Ecco un esempio di un csproj riferimento a un pacchetto di NuGet xproj

https://github.com/damienbod/ElasticsearchCRUD/tree/master/samples/ConsoleElasticsearchCrudExample

+0

C'era un punto in cui era possibile. Conosco molte aree di lavoro. Ma non lo sto cercando. Solo le cose che approvo stanno modificando project.json ecc. Tristemente mancano opzioni per questo. Quindi per ora usiamo gulp tasker. –

4

XProj è morto. Utilizzare una libreria di classi portatile (csproj), quindi impostarla su .NET Standard e il livello che si desidera utilizzare per la compatibilità. Quindi verrà creato project.json (che verrà probabilmente rinominato in seguito) e csproj sarà ancora lì rendendo quindi l'aggiunta del riferimento facile e funziona.

Se è necessaria la compatibilità incrociata, l'unico modo per farlo è eseguire quanto sopra, quindi aggiungere un progetto esistente nel caso della soluzione di base .NET e scegliere il file project.json anziché il file .csproj. Questo creerà anche l'xproj. Tuttavia, si noti che xproj/project.json supporterà il multi-targeting, ma il .csproj non lo farà e si interromperà l'interfaccia utente per le proprietà del progetto se si prova. (funziona ancora ma l'interfaccia utente è morta)

L'unica altra alternativa è quella di associare alla DLL non il progetto. È possibile utilizzare un xproj, inserire gli obiettivi e quindi Aggiungi riferimenti e scegliere la DLL con Sfoglia.

+0

Si prega di elaborare un po 'di più – thepirat000

+0

Che aiuto con i dettagli? –

+0

Puoi ancora scegliere come target più framework con questo approccio? –