2017-06-14 3 views
1

Mein Ziel ist es, ein gemeinsames Projekt aus einer Dotnetcore-Klassenbibliothek verweisen.Referenz freigegebenes Projekt in Dotnetcore ClassLib, und die Build-Arbeit unter Windows und Linux

Um dies zu tun, öffnete ich meine Lösung, die ich auf Linux mit .NET Command Line Tools (1.0.4) in Visual Studios 2017 auf Windows, seit ich gelesen habe, dass vs2017 unterstützt Referenzen auf Shprojs. So habe ich eine Referenz verwendet vs und hinzugefügt, um diese Linie zu den .netcore Bibliotheken csproj Datei:

<Import Project="..\Objects\LogoRecognitionShared.projitems" Label="Shared" /> 

An diesem Punkt dachte ich, alles lief perfekt zu arbeiten. Ich habe es in Visual Studios gebaut und es gab keine Probleme. Ich dachte, dass, da meine CLI-Version auf Windows und Linux dieselbe war, das Projekt auf die gleiche Weise erstellt würde und die gleichen Funktionalitäten unterstützen würde.

Aber als ich diese Änderungen auf Linux versuchte, erhielt ich eine Reihe von "error CS0246: The type or namespace name 'TypeName' could not be found (are you missing a using directive or an assembly reference?)" Nachrichten.

Ich auch mit der <Compile Include="..\Objects\*.cs"/> Anweisung und bekam den gleichen Fehler. Aber wenn ich beide verwende, dann bekomme ich warning CS2002: Source file 'Objects/*.cs' specified multiple times

Ich bin mir nicht sicher, wie Sie dieses Problem beheben können. Es scheint mir, dass der Build-Prozess weiß, dass diese Dateien in die Ausgabe eingebaut werden sollten, aber wenn der Build tatsächlich stattfindet, dann lässt er sie aus und hat gebrochene Referenzen.

Jede Hilfe wäre fantastisch.

Antwort

1

Nun, ich denke, herausgefunden, was meine Probleme verursacht hat. Eines meiner freigegebenen Projekte hatte einen falschen RootNamespace-Wert. Also habe ich es von vs2017 korrigiert, dann habe ich einen Clean-Build gemacht und zu meiner Überraschung hat es auf Linux funktioniert ...

Verwandte Themen