Frage

Ist es möglich, die Informationen in einer CSPROJ über mehr als eine Datei zu teilen? Ein bisschen wie eine Projektversion der partial class Funktion.

War es hilfreich?

Lösung

Sie können nicht mehr als ein Master csproj haben. Aber weil die unter Verkabelung des csproj erfolgt msbuild verwenden, können Sie einfach mehr Teil csproj haben, die sie importieren. Die Lösung Datei sehen würde, die abgeleitet csproj.

Project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ....
</Project>

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project1.csproj" />
    ...
</Project>

project.csproj -. Das ist das wichtigste Projekt, das von der Lösungsdatei bezeichnet wird

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project2.csproj" />
    ...
</Project>

Unterm Strich ist, dass die Verwendung msbuild Importieren Funktion, die Sie teilweise csproj Dateien haben können, wo jeder einzelnen Definitionen enthalten würde, die das Hauptprojekt (project.csproj in meinem Beispiel) verwenden würde.


Visual Studio zeigt eine Sicherheitswarnung für Projekt Dialog, wenn Sie Ihre geänderte Lösung oder Projektdatei öffnen. Wählen Sie die Option Projekt laden Normalerweise und OK . Wenn die Lösung später wieder öffnet die Warnung nicht, weil die Konfiguration auf angezeigt Projekt lädt Normalerweise in der suo gespeichert Datei.

Andere Tipps

Ja, können Sie Informationen über mehrere Dateien aufgeteilt. Sie können Import-Element (MSBuild) verwenden.

Beachten Sie, dass Visual Studio erhalten Sie lästige Sicherheitswarnung wenn Sie werden versuchen, Projektdatei zu öffnen, die anderen Projektdateien enthält.

Nützliche linky von MSDN:

Gewusst wie: Verwenden Sie das gleiche Ziel in mehreren Projektdateien

Beachten Sie, dass externe Dateien .targets Erweiterung durch Konventionen.

Nun können Sie mehrere Projekte in eine große Lösung kombiniert haben, aber ich glaube nicht, das ist ganz was du im Sinn hatte, da jedes Projekt ein komplettes Projekt in diesem Fall sein muss.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top