2016-07-14 21 views
16

Ich habe .csproj Projekt und ich möchte auf andere Projekt verweisen, das ist .xproj, alles sieht gut aus, aber wenn ich versuche, Lösung zu bauen, dann kann ich nicht, weil die DLL fehlt. Wenn ich die .dll von \bin\release\net452\... selbst referenziere dann ist alles in Ordnung. Wie behebt man das?Wie wird .xproj in .csproj referenziert?

EDIT: Ich suche keine Problemumgehungen - jetzt benutze ich Schluck mit gulp.move(). Es funktioniert gut, aber es fühlt sich schmutzig an ...

+1

Auch das gleiche Problem ... Ich bin mir sicher, dass es irgendwann funktioniert hat, aber jetzt weigert es sich nett zu spielen. – Adam

Antwort

9

Es ist nicht möglich, ein xproj von einem csproj direkt zu referenzieren.

Sie haben 2 mögliche Lösungen dafür.

A) Stellen Sie das xproj als NuGet-Paket bereit und verwenden Sie das NuGet-Paket in Ihrem csproj.

B) Konvertieren Sie Ihr csproj in ein xproj.

Hinweis: Das xproj muss Ihr verwendetes .NET csproj unterstützen. net451 usw.

Hier ist ein Beispiel eines csproj ein xproj NuGet Paket Referenzierung

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

+0

Es gab einen Punkt, als es möglich war. Ich kenne viele Arbeitsbereiche. Aber ich suche nicht danach. Nur die Dinge, die ich genehmige, sind die Bearbeitung von project.json usw. Leider fehlen ihnen dafür Optionen. So für jetzt Wir verwenden Schluck Taser. –

4

XProj tot ist. Verwenden Sie eine portable Klassenbibliothek (csproj) und legen Sie sie dann auf .NET Standard und die Ebene fest, die Sie aus Gründen der Kompatibilität verwenden möchten. Dann wird project.json erstellt (was wahrscheinlich später umbenannt wird) und csproj wird immer noch da sein, was das Hinzufügen der Referenz vereinfacht und es einfach funktioniert.

Wenn Sie Kreuzkompatibilität benötigen, können Sie dies nur tun, indem Sie im Fall der .NET-Kernlösung ein vorhandenes Projekt hinzufügen und anstelle von .csproj die Datei project.json auswählen. Dies wird auch das xproj erzeugen. Beachten Sie jedoch, dass xproj/project.json Multi-Targeting unterstützt, das .csproj jedoch nicht, und Sie werden die Benutzeroberfläche für Projekteigenschaften beschädigen, wenn Sie dies versuchen. (Es funktioniert immer noch, aber die UI ist tot)

Ihre einzige andere Alternative ist die Bindung an die DLL nicht das Projekt. Sie können ein xproj verwenden, die Ziele einfügen und dann Referenzen hinzufügen und die DLL mit Durchsuchen auswählen.

+0

Bitte ein wenig mehr ausarbeiten – thepirat000

+0

Das hilft mit dem Detail? –

+0

Können Sie mit diesem Ansatz immer noch mehrere Frameworks anvisieren? –