واحد چلت مسل میں شامل کیے بغیر بطور الگ مسل شائع کرنے کا طریقہ

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

ماحول

بصری سٹوڈیو
  • بصری سٹوڈیو 2019
ASP.NET کور
  • 3.1

ایک واحد فائل کیا ہے ؟

Exe فائل کے علاوہ ، آپ کو اکثر ایک فائل کی ضرورت ہوگی جیسے ایک پروگرام چلانے کے لئے dll. آپ متعدد مسلیں اور پروگرام تقسیم کریں گے ۔

اب آپ اس خصوصیت کا استعمال کرتے ہوئے پروگرام شائع کرکے ایک exe میں تمام فائلوں کو چلانے کے کر سکتے ہیں "سنگل فائل بنائیں" .NET کور 3.0 سے شامل. (Pdb فائل ایک ٹھیک معلومات فائل ہے ، لہذا آپ کو اسے تقسیم کرنے کی ضرورت نہیں ہے.)

تاہم ، بعض صورتوں میں ، آپ کو exe میں بھی شامل کرنے کے بجائے exe کے ساتھ ایک فولڈر میں ایک ترتیب فائل رکھنا چاہتے ہیں. یہ سیکشن اس کی وضاحت کرتا ہے کہ یہ کیسے کریں.

واحد مسل کی پیداوار کے لیے تیاری

ایک نمونہ کے طور پر ، مندرجہ ذیل منصوبے کی ترتیب کو شروع میں TextFile1. txt فائل کو لوڈ کرنے کے لئے استعمال کیا جانا چاہئے. TextFile1. txt exe فائل کے ساتھ تقسیم کیا جا کرنے کا ارادہ رکھتا ہے ، لہذا یہ "کارروائی کی تعمیر: کوئی نہیں" اور "آؤٹ پٹ ڈائرکٹری میں کاپی کریں: نیا میں کاپی کریں ." TextFile1. txt کے مواد کو صوابدیدی کیا جا سکتا ہے.

آپ اس مفروضہ کے ساتھ ایک پروگرام بنا سکتے ہیں جسے آپ فائلوں کو لوڈ کرنا چاہتے ہیں جو ایک دوسرے کے ساتھ تقسیم کیے جاتے ہیں.

تاہم ، ایک ہی فائل میں قابل نفاذ فائل اصل میں ایک علیحدہ عارضی فولڈر میں توسیع کی جاتی ہے جب یہ چل رہا ہے. جب آپ ایک رشتہ دار راہ میں فائل لوڈ کرتے ہیں ، تو آپ کو اس فولڈر میں اس کا اختصاص کرنا ہوگا جہاں آپ نے نفاذ پذیر فائل شروع کی ، اس فولڈر میں نہیں جہاں نفاذ پذیر فائل واقع ہے ۔

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();
    }
  }
}

جب آپ ٹھیک کریں تو ، آپ دیکھ سکتے ہیں کہ فائل لوڈ کی گئی ہے.

TextFile1. txt بھی آؤٹ پٹ فولڈر میں چھپی ہوئی ہے کیونکہ یہ ابھی تک ایک ہی فائل میں مرتب نہیں کیا گیا ہے.

آئیے اسے اس حالت میں ایک ہی فائل کے طور پر شائع کریں ۔ یہ طریقہ کار حذف نہیں کیا گیا کیونکہ اشاعت کا مقصد نہیں ہے ۔

ہدف چلت وقت ایک واحد مسل ہونے کے لیے غیر نقل پذیر ہونا چاہیئے ۔

میں نے ابھی تک کچھ مقرر نہیں کیا ہے ، لہذا یہ ہمیشہ کے طور پر ایک فائل ہے.

جب آپ اسے چلاتے ہیں تو کوئی TextFile1. txt نہیں ہے ، لہذا آپ کو ایک غلطی مل جائے گی.

کسی بھی فائل میں بغیر کسی مخصوص فائل کو کیسے شائع کریں

اس مسل کے ساتھ جو آپ پراجیکٹ میں شامل کرنا نہیں چاہتے ہیں اس کے ساتھ پراجیکٹ مسل (csproj) کھولیں ۔

مجھے لگتا ہے کہ یہ اس طرح کی xml ہے: اس مسل کی تلاش کریں جس کے لیے آپ سیٹنگیں تبدیل کرنا چاہتے ہیں ۔ آپ کے پروجیکٹ کی ترتیبات پر منحصر ہے ، آپ کو ایک ہدف فائل نہیں ہوسکتی ہے ، لہذا آپ کو دستی طور پر شامل کرنے کی ضرورت ہوسکتی ہے.

<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>

جب آپ فائل کو تلاش کرتے ہیں تو ، سچ کے ساتھ کلوڈیفرومسانگلیفالی شامل کریں ، جیسے مندرجہ ذیل: جیسا کہ نام کا مطلب ہے ، یہ ایک ہی فائل سے خارج کر دیا جاتا ہے.

<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>

محفوظ کرنے کے بعد ایک بار شائع کرنے کی کوشش کریں ۔ آپ دیکھ سکتے ہیں کہ یہ ایک ہی فائل سے باہر شائع کیا جاتا ہے.

آپ اب بھی شائع شدہ فائل کو اس بات کی تصدیق کرنے کے لئے چلا سکتے ہیں کہ یہ صحیح طریقے سے کام کر رہا ہے.