xbuild und F # (vs2010) Projekt
-
27-10-2019 - |
Frage
Ich habe eine gemischte VS 2010-Lösung, die hauptsächlich C # ist, aber einen in F # geschriebenen Windows-Dienst enthält. Ich hatte dieses Gebäude mit xbuild in einer parallelen Umgebung, aber seit dem Upgrade auf die Paketversion von Mono 2.10.5 von badgerports < / a> Ich konnte es nicht zum Laufen bringen.
Der Fehler, auf den ich normalerweise stoße, ist:
/home/alex/git/Solution/FSProject/FSProject.fsproj: Fehler: Ziel mit dem Namen 'Build' wurde im Projekt nicht gefunden.
Was mich verwundert, ist, dass beim Betrachten der Projektdatei keine Ziele definiert sind. Ich bin kein Experte für MSBuild, aber das kommt mir etwas seltsam vor. Davon abgesehen hat es vorher funktioniert.
Hat jemand ähnliche Probleme gefunden (und hoffentlich die Lösung dafür gefunden)? Wenn möglich, möchte ich die Lösung mit xbuild und in Visual Studio erstellen können.
Umgebung ist Mint 11 (nicht sicher, ob dies auf Ubuntu Maverick oder Natty basiert), auf dem Mono 2.10.5 von Badgerports ausgeführt wird. fsharp wurde von der neuesten Quelle mit dem Standardpräfix installiert.
edit
Dank Brians Zeiger konnte ich ein wenig näher kommen (ich musste einen Pfad hart codieren, xbuild scheint Probleme beim Auflösen von Dingen wie "$ (MSBuildExtensionsPath32) .. \ FSharp \ 1.0 \ Microsoft" zu haben. FSharp.Targets "). FSC wird derzeit tatsächlich aufgerufen, beschwert sich jedoch, dass der Verweis auf FSharp.Core nicht aufgelöst werden kann.
Ich habe diese Seite gefunden F # und XBuild (Debian) < / a> hilfreich, um so weit zu kommen.
Lösung
Wenn Sie Folgendes verwenden, ist kein Hackery mehr erforderlich:
- Mono 3.0.0 oder neuer.(Meine Änderung wurde hier zusammengeführt.)
- FSharp-Tag 3.0.26 (oder neuer) auf Github (Meine Änderungwurde hier zusammengeführt
Andere Tipps
Es stellt sich also heraus, dass die parallele Umgebung mir die Dinge tatsächlich leichter gemacht hat. Mono wird unter / usr installiert, während F # unter / usr / local installiert wird. Daher musste ich Symlinks einrichten, damit FSharp-Ziele und Common-Ziele einander sehen können. Dies wird hier detailliert beschrieben: F # und XBuild (Debian)
Damit kann ich den Pfad zu FSharp.targets in der Befehlszeile übergeben.