visual studio - ডটনেট কোর/সিএসপিজেজে এসেম্বলিআইনফো এর সমান




visual-studio visual-studio-2017 (4)

আপনি ইতিমধ্যে লক্ষ্য করেছেন, আপনি .csproj এ এই বেশিরভাগ সেটিংস নিয়ন্ত্রণ করতে পারেন।

আপনি যদি এগুলি বরং এসেম্বলিআইএনফো-তে রাখেন তবে আপনি স্বয়ংক্রিয়ভাবে উত্পাদিত সমাবেশ বৈশিষ্ট্যগুলি বন্ধ করতে পারেন।

<PropertyGroup>
   <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup> 

আপনি যদি হুডের নীচে কী চলছে তা দেখতে চান, Microsoft.NET.GenerateAssemblyInfo.targets অভ্যন্তরে মাইক্রোসফ্ট.এনইটি.জেনারেটঅ্যাস্পেসইনফোর.আর্টেজগুলি দেখুন।

যেহেতু ডটনেট কোর .csproj ফর্ম্যাটে ফিরে .csproj সেখানে একটি নতুন MyProject.AssemblyInfo.cs রয়েছে MyProject.AssemblyInfo.cs

[assembly: AssemblyCompany("MyProject")]
[assembly: AssemblyVersion("1.0.0.0")]

নোট করুন যে এটি প্রতিটি বিল্ড স্বয়ংক্রিয়ভাবে পুনরায় জেনারেট হয়। পূর্বে ফাইলটি / আপত্তি / ডিরেক্টরিতে পাওয়া যেত, এখন এটি কেবল স্মৃতিতে উপস্থিত বলে মনে হয় কারণ ফাইলটি ডিস্কে খুঁজে পাওয়া যায়নি এবং ত্রুটি বার্তায় ক্লিক করলে কোনও ফাইল খোলা যায় না।

এটি ত্রুটি বার্তা:

যেহেতু তারা সেখানে সংজ্ঞায়িত হয়েছে আমি তাদের ক্লাসিকাল AssemblyInfo.cs সিগুলিতে নিজেকে সংজ্ঞায়িত করতে পারি না।

আমি কোথায় / কীভাবে কোনও প্রকল্পের সংস্থা ও সংস্করণ সংজ্ঞায়িত করতে পারি?


আপনি সর্বদা আপনার নিজের এসেম্বলিআইএনফো- CLSCompliantAttribute যুক্ত করতে পারেন যা InternalsVisibleToAttribute , CLSCompliantAttribute এবং অন্যদের জন্য কার্যকর হয় যা স্বয়ংক্রিয়ভাবে উত্পন্ন হয় না।

একটি প্রকল্পে এসেম্বলিআইএনফো

  1. সমাধান এক্সপ্লোরারে, <project name> > Add > New Folder ডান ক্লিক করুন click

  1. "সম্পত্তি" ফোল্ডারের নাম দিন।

  1. "প্রোপার্টি" ফোল্ডারে ডান ক্লিক করুন, এবং যুক্ত করুন Add > New Item... ক্লিক Add > New Item...

  1. "শ্রেণি" নির্বাচন করুন এবং এটির নাম "এসেম্বলিআইনফো.সি.এস" রাখুন।

স্বতঃ উত্পাদিত বৈশিষ্ট্য দমন করা

আপনি যদি নিজের বৈশিষ্ট্যগুলি স্বয়ংক্রিয়ভাবে জেনারেট করার পরিবর্তে এসেম্বলিআইএনফো-তে ফিরে যেতে চান, তবে এমএসবিল্ডে নাটেমকাস্টার share উল্লেখ করেছেন আপনি এগুলি দমন করতে পারেন।


আমি নিম্নলিখিত সহ এই বিষয় / উত্তরগুলি প্রসারিত করতে চাই। যেমনটি কেউ উল্লেখ করেছেন, বাহ্যিক সরঞ্জামগুলির জন্য স্বয়ংক্রিয়ভাবে উত্পন্ন এই অ্যাসেমব্লিলিইনফোর বাধা হতে পারে। আমার ক্ষেত্রে, ফাইনালবিল্ডার ব্যবহার করে, আমার একটি সমস্যা ছিল যে বিল্ডিং অ্যাকশন দ্বারা એસেম্বলিআইএনফো আপডেট হচ্ছে না। স্পষ্টতই, ফাইনালবিল্ডার ~proj অবস্থান জানতে ~proj ফাইলের উপর নির্ভর করে। আমি ভেবেছিলাম, এটি প্রকল্প ফোল্ডারের অধীনে কোথাও খুঁজছেন। না। সুতরাং, এটি পরিবর্তন

<PropertyGroup>
   <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup> 

শুধুমাত্র চাকরীটি ছিল, এটি ভিএস আইডিই / এমএস বিল্ড দ্বারা নির্মিত যদি কাস্টম অ্যাসেমব্লির তথ্যের অনুমতি দেয়। তবে আমার দরকার ফাইনালবিল্ডারকে সমাবেশ তথ্য ফাইলটিতে ম্যানুয়াল ম্যানিপুলেশন ছাড়াই এটি করা। আমার সমস্ত প্রোগ্রাম, এমএসবিল্ড / ভিএস এবং ফাইনালবিল্ডারকে সন্তুষ্ট করা দরকার।

আমি বিদ্যমান ItemGroup একটি এন্ট্রি যুক্ত করে এটি সমাধান ItemGroup

<ItemGroup>
   <Compile Remove="Common\**" />
   <Content Remove="Common\**" />
   <EmbeddedResource Remove="Common\**" />
   <None Remove="Common\**" />
   <!-- new added item -->
   <None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

এখন, এই আইটেমটি রেখে, ফাইনালবিল্ডার এসেম্বলআইএনফো-র অবস্থানটি সন্ধান করে এবং ফাইলটি সংশোধন করে। অ্যাকশন কোনওটিই এমএসবিল্ড / ডিভেনভ এই এন্ট্রিটিকে উপেক্ষা করার অনুমতি দেয় না এবং কমপাইল ক্রিয়ার উপর ভিত্তি করে কোনও ত্রুটি রিপোর্ট করে না যা সাধারণত proj ফাইলগুলিতে অ্যাসেম্বলি তথ্য প্রবেশের সাথে আসে।

সি: \ প্রোগ্রাম ফাইলসমূহ \ ডটনেট \ এসডিকে \ ২.০.২ \ এসডিএসস \ মাইক্রোসফট.এনইটি.এসডিকি \ বিল্ড \ মাইক্রোসফট.এনইটি.এসডিকি.ডাফল্ট আইটেমস.টারজেটস (২3৩,৫): ত্রুটি: নকল 'কমাইল' আইটেম অন্তর্ভুক্ত ছিল। .NET SDK- এ ডিফল্টরূপে আপনার প্রকল্প ডিরেক্টরি থেকে আইটেমগুলি 'সংকলন' অন্তর্ভুক্ত করে। হয় আপনি আপনার প্রকল্প ফাইল থেকে এই আইটেমগুলি সরিয়ে ফেলতে পারেন, বা যদি আপনি তাদের প্রকল্পের ফাইলটিতে স্পষ্টভাবে অন্তর্ভুক্ত করতে চান তবে 'সক্ষম করুন ডিফল্টকম্পাইলআইটেমস' সম্পত্তিটিকে 'ভুয়া'তে সেট করতে পারেন। আরও তথ্যের জন্য, https://aka.ms/sdkimplicititems । সদৃশ আইটেমগুলি ছিল: 'এসেম্বলিআইনফো.সি.এস'


এই সেটিংস .csproj ফাইলে সরানো হয়েছে।

ডিফল্টরূপে তারা প্রদর্শিত হয় না তবে আপনি প্রকল্পের বৈশিষ্ট্য Package ট্যাবে ভিজ্যুয়াল স্টুডিও 2017 থেকে এগুলি আবিষ্কার করতে পারেন।

একবারে সেভ করা সেই মানগুলি MyProject.csproj পাওয়া MyProject.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <Version>1.2.3.4</Version>
    <Authors>Author 1</Authors>
    <Company>Company XYZ</Company>
    <Product>Product 2</Product>
    <PackageId>MyApp</PackageId>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <FileVersion>3.0.0.0</FileVersion>
    <NeutralLanguage>en</NeutralLanguage>
    <Description>Description here</Description>
    <Copyright>Copyright</Copyright>
    <PackageLicenseUrl>License URL</PackageLicenseUrl>
    <PackageProjectUrl>Project URL</PackageProjectUrl>
    <PackageIconUrl>Icon URL</PackageIconUrl>
    <RepositoryUrl>Repo URL</RepositoryUrl>
    <RepositoryType>Repo type</RepositoryType>
    <PackageTags>Tags</PackageTags>
    <PackageReleaseNotes>Release</PackageReleaseNotes>
  </PropertyGroup>

ফাইল এক্সপ্লোরার বৈশিষ্ট্য তথ্য ট্যাবে ফাইল ফাইলটি "ফাইল সংস্করণ" হিসাবে দেখানো হয় এবং Version "পণ্য সংস্করণ" হিসাবে দেখানো হয়







assemblyinfo