Frage

In der .csrpoj Datei, Wenn ich

<Compile Include="c:\path\File1.cs">
  <Link>Dir1\File1.cs</Link>
</Compile>

Dann Visual Studio zeigt die Datei als Verknüpfung unter Dir1 Ordner im Solution Explorer.

Wenn ich

<Compile Include="c:\path\*.cs"></Compile>

Dann werden alle .cs Dateien zeigen, wie Verknüpfungen in Projektmappen-Explorer auf oberster Ebene nach oben:

Gibt es eine Möglichkeit schließen alle Dateien in einigen Ordnern und macht dann unter einem Unterverzeichnis auftauchen? die Dateinamen in Link Elemente Weglassen nicht funktioniert:

<Compile Include="c:\path\*.cs">
  <Link>Dir1\</Link>
</Compile>

Die Dateien zeigen noch auf höchster Ebene nach oben.

Wie füge ich alle Dateien in einem Ordner und noch das Verbindungselement verwenden? Der Grund, warum ich brauche dies, ich brauche Dateien aus mehreren Ordnern enthalten und einige von ihnen haben den gleichen Namen. Zwei Dateien auf höchster Ebene können nicht den gleichen Namen haben.

Eine andere Möglichkeit, dies zu erreichen?


Ich bin ganz neu in die Visual Studio-Plattform. Apologize im Voraus für jede Dummheit in den Fragen.

War es hilfreich?

Lösung

<Content Include="..\..\SomeDirectory\**\*.xml">
  <Link>SomeLinkDirectoryOfYourChoosing\%(Filename)%(Extension)</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

Andere Tipps

Für das Wohl des anderen, hier ist die Antwort und der Kommentar von Dean und Miserable Variable, die ich nützlich gefunden:

Ich habe zwei Projekte, und ich brauche * .xsd von einem in den anderen zu schließen, ohne die Dateien zu kopieren oder mit der verweisenden csproj Datei wird jedes Mal, wenn eine neue XSD zur ersten hinzugefügt aktualisieren.

Die Lösung war die folgende auf die csproj Datei hinzufügen

  <Content Include="..\BusinessLayer\Schemas\*.xsd">
    <Link>Contract\Schemas\xxx.xsd</Link>
  </Content>

Hinweis xxx.xsd, haben Sie einen Dummy-Dateinamen in dem Link Elemente zu geben. Es wird nur ersetzt.

Sie können aber auch alle Unterverzeichnisse sind mit:

  <Content Include="..\BusinessLayer\Schemas\**\*.xsd">
    <Link>Contract\Schemas\ThisTextDoesntMatter</Link>
  </Content>

Und Dateien aller Art (nützlich für die in CSS / JS / Style Ordner von 3.en Parteien ziehen) mit:

  <Content Include="..\PresentationLayer\CustomerStyle\**\*.*">
    <Link>CustomerStyle\placeHolder</Link>
  </Content>

Andere haben die Verwendung des Link Attribut mit Platzhalter vorgeschlagen, die in der Tat funktioniert. Microsoft hat jedoch ein neues Attribut implementiert (die nicht in jedem meiner Code-Vervollständigung Vorschläge ist), benannt LinkBase, unten gezeigt.

<Compile Include="..\SomeDirectory\*.cs" LinkBase="SomeDirectoryOfYourChoosing" />

Quellen:

Unterordner enthalten:

<ItemGroup>
  <Compile Include="..\SomeExternalFolder\**\*.cs" LinkBase="YourProjectFolder" />
</ItemGroup>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top