Dela via


Filkapsling i Projektutforskaren

Solution Explorer grupperar relaterade filer för att organisera dem och göra dem enklare att hitta. Om du till exempel lägger till ett Formulär för Windows i ett projekt kapslas kodfilen för formuläret under formuläret i Solution Explorer. I .NET Core-projekt (och .NET 5 och senare) kan filkapsling tas ett steg längre. Du kan välja mellan filkapslingsförinställningar Av, Standard och Webb. Du kan också anpassa hur filer kapslas eller skapa lösningsspecifika och projektspecifika inställningar.

Anmärkning

I Visual Studio 2022 version 17.2 och tidigare stöds den här funktionen endast för ASP.NET Core-projekt. I version 17.3 och senare stöder alla projekt som är inriktade på .NET filkapsling.

Alternativ för filkapsling

Knapp för att aktivera/inaktivera filkapsling

De tillgängliga alternativen för icke-anpassad filkapsling är:

  • Av: Det här alternativet ger dig en platt lista över filer utan kapsling.

  • Standard: Med det här alternativet får du standardbeteendet för filkapsling i Solution Explorer. Om det inte finns några inställningar för en viss projekttyp kapslas inga filer i projektet. Om det finns inställningar (till exempel för ett webbprojekt) tillämpas kapsling.

  • Webb: Det här alternativet tillämpar webbfilens kapslingsbeteende på alla projekt i den aktuella lösningen. Det har många regler, och vi uppmuntrar dig att kolla in det och berätta vad du tycker. Följande skärmbild visar bara några exempel på det filkapslingsbeteende som du får med det här alternativet:

    Filkapsling i Solution Explorer

Anpassa filindelning

Om du inte gillar det du får direkt kan du skapa egna, anpassade filkapslingsinställningar som instruerar Solution Explorer att kapsla filer. Du kan lägga till så många anpassade filkapslingsinställningar som du vill, och du kan växla mellan dem som du vill. Om du vill skapa en ny anpassad inställning kan du börja med en tom fil eller använda webbinställningarna som startpunkt:

Lägga till anpassade filkapslingsregler

Vi rekommenderar att du använder webbinställningar som utgångspunkt eftersom det är enklare att arbeta med något som redan fungerar. Om du använder webbinställningarna som startpunkt ser .filenesting.json-filen ut ungefär som i följande fil:

Använda befintliga filkapslingsregler som grund för anpassade inställningar

Nu ska vi fokusera på dependentFileProviders och dess underordnade noder. Varje underordnad nod är en typ av regel som Visual Studio kan använda för att kapsla filer. Till exempel att ha samma filnamn, men ett annat tillägg är en typ av regel. De tillgängliga reglerna är:

  • extensionToExtension: Använd den här typen av regel för att kapsla file.js under file.ts

  • fileSuffixToExtension: Använd den här typen av regel för att kapsla file-vsdoc.js under file.js

  • addedExtension: Använd den här typen av regel för att kapsla file.html.css under file.html

  • pathSegment: Använd den här typen av regel för att kapsla jquery.min.js under jquery.js

  • allExtensions: Använd den här typen av regel för att kapsla filen.* under file.js

  • fileToFile: Använd den här typen av regel för att kapsla bower.json under .bowerrc

ExtensionToExtension-providern

Med den här providern kan du definiera filkapslingsregler med hjälp av specifika filnamnstillägg. Tänk på följande exempel:

extentionToExtension-exempelregler

extentionToExtension-exempeleffekt

  • cart.js kapslas under cart.ts på grund av den första regeln extensionToExtension

  • cart.js är inte kapslad under cart.tsx eftersom .ts kommer före .tsx enligt reglerna, och det kan bara finnas en föräldraenhet

  • light.css kapslas under light.sass på grund av den andra extensionToExtension-regeln

  • home.html kapslas under home.md på grund av den tredje regeln extensionToExtension

FileSuffixToExtension-providern

Den här providern fungerar precis som extensionToExtension-providern , där den enda skillnaden är att regeln tittar på suffixet i filen i stället för bara tillägget. Tänk på följande exempel:

fileSuffixToExtension-exempelregler

fileSuffixToExtension-exempeleffekt

  • portal-vsdoc.js kapslas under portal.js på grund av regeln fileSuffixToExtension

  • alla andra aspekter av regeln fungerar på samma sätt som extensionToExtension

TillagdExtensions-leverantören

Den här providern kapslar filer med ytterligare ett tillägg under filen utan ytterligare tillägg. Det ytterligare tillägget kan bara visas i slutet av det fullständiga filnamnet.

Tänk på följande exempel:

addedExtension-exempelregler

addedExtension-exempeleffekt

  • file.html.css kapslas under file.html på grund av regeln addedExtension

Anmärkning

Du anger inga filnamnstillägg för addedExtension regeln. Den gäller automatiskt för alla filnamnstillägg. Det vill: alla filer med samma namn och filnamnstillägg som en annan fil plus ytterligare ett tillägg i slutet kapslas under den andra filen. Du kan inte begränsa effekten av den här providern till bara specifika filnamnstillägg.

PathSegment-leverantören

Den här providern kapslar filer med ytterligare ett tillägg under en fil utan ytterligare tillägg. Det ytterligare tillägget kan bara visas i mitten av det fullständiga filnamnet.

Tänk på följande exempel:

pathSegment-exempelregler

pathSegment-exempeleffekt

  • jquery.min.js kapslas under jquery.js på grund av pathSegment-regeln

Anmärkning

  • Om du inte anger några specifika filnamnstillägg för pathSegment regeln gäller det för alla filnamnstillägg. Det vill: alla filer med samma namn och filnamnstillägg som en annan fil plus ytterligare ett tillägg i mitten kapslas under den andra filen.

  • Du kan begränsa effekten av pathSegment regeln till specifika filnamnstillägg genom att ange dem på följande sätt:

    "pathSegment": {
        "add": {
          ".*": [
            ".js",
            ".css",
            ".html",
            ".htm"
          ]
        }
    }
    

AllExtensions-providern

Med den här providern kan du definiera filkapslingsregler för filer med alla tillägg men samma basfilnamn. Tänk på följande exempel:

allExtensions-exempelregler

allExtensions-exempeleffekt

  • template.cs och template.doc kapslas under template.tt på grund av regeln allExtensions .

FileToFile-Providern

Med den här providern kan du definiera filkapslingsregler baserat på hela filnamn. Tänk på följande exempel:

fileToFile-exempelregler

fileToFile-exempeleffekt

  • .bowerrc kapslas under bower.json på grund av fileToFile-regeln

Regelordning

Beställning är viktigt i alla delar av filen med anpassade inställningar. Du kan ändra i vilken ordning reglerna körs genom att flytta dem uppåt eller nedåt i den beroendeFileProvider-noden . Om du till exempel har en regel som gör file.js överordnad till file.ts och en annan regel som gör file.coffee till överordnad för file.ts, avgör ordningen i vilken de visas i filen kapslingsbeteendet när alla tre filerna finns. Eftersom file.ts bara kan ha en överordnad vinner den regel som först körs.

Ordningen är också viktig för själva regelavsnitten, inte bara för filer i ett avsnitt. Så snart ett par filer matchas med en filkapslingsregel ignoreras andra regler längre ned i filen och nästa par filer bearbetas.

Filhäckningsknapp

Du kan hantera alla inställningar, inklusive dina egna anpassade inställningar, via samma knapp i Solution Explorer:

Aktivera anpassade filkapslingsregler

Skapa projektspecifika inställningar

Du kan skapa lösningsspecifika och projektspecifika inställningar via snabbmenyn (snabbmenyn) för varje lösning och projekt:

Lösnings- och projektspecifika kapslingsregler

Lösningsspecifika och projektspecifika inställningar kombineras med de aktiva Visual Studio-inställningarna. Du kan till exempel ha en tom projektspecifik inställningsfil, men Solution Explorer kapslade fortfarande filer. Kapslingsbeteendet kommer antingen från de lösningsspecifika inställningarna eller Visual Studio-inställningarna. Prioriteten för sammanslagning av filkapslingsinställningar är: Visual Studio > Solution > Project.

Du kan be Visual Studio att endast använda de lösningsspecifika eller projektspecifika inställningarna genom att ange rotnoden till true. Visual Studio slutar slå samman filer på den nivån och kombinerar det inte med filer högre upp i hierarkin.

Lösningsspecifika och projektspecifika inställningar kan checkas in i källkontrollen, och hela teamet som arbetar med kodbasen kan dela dem.

Inaktivera filkapslingsregler för ett projekt

Du kan inaktivera befintliga globala filkapslingsregler för specifika lösningar eller projekt med hjälp av borttagningsåtgärden för en leverantör i stället för att lägga till. Om du till exempel lägger till följande inställningskod i ett projekt inaktiveras alla pathSegment-regler som kan finnas globalt för det här specifika projektet:

"dependentFileProviders": {
  "remove": {
    "pathSegment": {}
  }
}