Kako objaviti kot ločeno datoteko, ne da bi bila vključena v datoteko z enim zagonom

Stran posodobljena :
Datum ustvarjanja strani :

Okolje

Vizualni Studio
  • Vizualni Studio 2019
ASP.NET jedro
  • 3,1

Kaj je ena sama datoteka?

Poleg exe datoteke, boste pogosto potrebovali datoteko, kot je DLL za zagon programa. Distribuirali boste več datotek in programov.

Zdaj lahko zaženete vse datoteke v enem exe z objavo programa z uporabo funkcije "ustvari eno datoteko" doda .NET Core 3,0. (Datoteka PPP je datoteka z informacijami za iskanje napak, zato je ni treba distribuirati.)

Vendar, v neki skrinja, smeš biti brez postaviti a zunanja podoba pila v a zgibalnik s exe namesto vštevši to v exe. V tem razdelku je opisano, kako to naredite.

Priprava za izhod z enim samim datotečnim

Kot vzorec je treba za nalaganje datoteke TextFile1. txt ob zagonu uporabiti naslednjo konfiguracijo projekta. TextFile1. txt je nameravan v obstati razdeliti s exe pila, tudi izdelovanje to "zidava dejanje: nič" ter "ulitek v izhod naslovnik: ulitek v nov če nov" Vsebina TextFile1. txt lahko poljubno.

Program lahko zgradite s predpostavko, da želite naložiti datoteke, ki so porazdeljene skupaj.

Vendar, izvršljiv pila v a posamezen pila je zdaj raztegniti v a oddeljen začasno zgibalnik čas ono je prost dostop. Ko naložite datoteko v relativno pot, jo morate določiti v mapi, kjer ste zagnali izvedljivo datoteko, in ne v mapi, kjer je izvedljiva datoteka.

using System;
using System.Diagnostics;
using System.IO;

namespace ExcludeFromSingleFile
{
  class Program
  {
    static void Main(string[] args)
    {
      using var processModule = Process.GetCurrentProcess().MainModule;
      Console.WriteLine(File.ReadAllText(Path.Combine(Path.GetDirectoryName(processModule.FileName), "TextFile1.txt")));
      Console.ReadKey();
    }
  }
}

Ko debug, lahko vidite, da je datoteka naložena.

TextFile1. txt je natisnjena tudi v izhodni mapi, ker še ni bila prevedena v eno datoteko.

Objavimo jo kot eno datoteko v tej državi. Postopek je izpuščen, ker objava ni namenjena.

Ciljni izvajalnik mora biti neprenosljiv, da je ena sama datoteka.

Ničesar še nisem nastavil, zato je ena datoteka kot ponavadi.

Ni TextFile1. txt, ko zaženete, tako da boste dobili napako.

Kako objaviti določeno datoteko, ne da bi jo vključili v eno datoteko

Odprite projektno datoteko (csproj) v kodi z datoteko, ki je ne želite vključiti v projekt.

Mislim, da je XML takole: Poiščite datoteko, za katero želite spremeniti nastavitve. Glede na nastavitve projekta morda nimate ciljne datoteke, zato jo boste morda morali ročno dodati.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <None Update="TextFile1.txt">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
</Project>

Ko najdete datoteko, dodajte Excludefromsinglefile z TRUE, kot sledi: Kot pove že ime, je izključen iz ene same datoteke.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <None Update="TextFile1.txt">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <!-- ここから追加 -->
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
      <!-- ここまで追加 -->
    </None>
  </ItemGroup>
</Project>

Prosimo, poskusite objaviti, ko ste shranili. Ogledate si lahko, da je objavljena iz ene datoteke.

Objavljeno datoteko lahko še vedno zaženete, da preverite, ali deluje pravilno.