Resursfiler
Ofta jobbar vi med filer som ska finnas i samma mapp som vårt program, eller i en filsökväg relativt programmet. Till exempel:
Json-filer som ska sparas till eller läsas in
Bildfiler som Raylib ska läsa in och rita till skärmen
Textfiler som innehåller spelets berättelse
Dessa letar programmet alltid efter i den nuvarande mappen (current folder). Vad som räknas som current folder varierar.
Använder man en utförlig launch.json (via t.ex. Generate assets…) så är current folder mappen csproj-filen ligger i.
Använder man den ganska tomma default-launch-json-filen som C# Dev Kit numera skapar, så är current folder mappen som den kompilerade exe/dll-filen ligger i.
Lösning 1: Kopiera filerna automatiskt till målmappen
Det här är det rekommenderade sättet att lösa problemet på.
Öppna projektets csproj-fil. Den bör se ut ungefär såhär:
Lägg till en ny ItemGroup, till exempel direkt under den PropertyGroup som redan finns. I den nya ItemGroup:en lägger du in nya Content-element för de filer du vill ha med.
Många filer av samma typ
För att kopiera alla filer av en viss typ kan du använda *-tecken.
En hel mapp
Skapa en mapp där du lägger alla bilder, textfiler och annat du vill ha med. Döp den till t.ex. Assets.
Gör så att mappen, inklusive alla undermappar och filer, kopieras:
Lösning 2: Generate assets
Lägg bilder etc direkt i samma mapp som csproj-filen.
Använd F1 → .NET: Generate Assets for Build and Debug för att generera en launch.json.
Lösning 3: Lägg filerna manuellt till målmappen
Lägg alla nödvändiga filer direkt till mappen där exe/dll:en ligger. Kör du dotnet 7 blir det i bin\Debug\net7.0.
Kom ihåg att inte ta bort mappen utan att vara säker på att du har kopior av filerna!
Kom ihåg att kopiera in samma filer i din exe-fils mapp när du kompilerar för publicering!
Last updated