উত্তর:
বিল্ড অ্যাকশন সম্পত্তি সম্পর্কিত এমএসডিএন নিবন্ধটি পার্থক্যগুলি ব্যাখ্যা করে।
কিছুই নয় - ফাইলটি প্রকল্পের আউটপুট গ্রুপে অন্তর্ভুক্ত নয় এবং বিল্ড প্রক্রিয়াতে সংকলিত হয় না। একটি উদাহরণ একটি পাঠ্য ফাইল যা ডকুমেন্টেশন রয়েছে যেমন একটি রিডমি ফাইল।
সামগ্রী - ফাইলটি সংকলিত নয়, তবে সামগ্রী আউটপুট গ্রুপে অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ, এই সেটিংটি .htm বা অন্য ধরণের ওয়েব ফাইলের জন্য ডিফল্ট মান।
একটি পার্থক্য হ'ল তারা কীভাবে প্রকাশিত হয়; "কিছুই নয়" আইটেমগুলি একটি প্রকাশে অন্তর্ভুক্ত হয় না, "সামগ্রী" আইটেমগুলি করে; উদাহরণস্বরূপ, প্রকাশ ট্যাবে "অ্যাপ্লিকেশন ফাইলগুলি" সংলাপে।
CopyToOutputDirectory
সেট সেট না দিয়ে কোনও হিসাবে ঘোষিত না হয়true
dotnet publish
আমি ১০০% নিশ্চিত নই (আমি বিল্ড অ্যাকশন সম্পত্তিটির এমএসডিএন বিবরণটি পড়েছি ) তবে এমএসডিএন থেকে স্ট্যাকওভারফ্লোতে সেই উত্তরটি অনুলিপি করা আমার পক্ষে প্রশ্নের পুরোপুরি উত্তর দেয় না।
কিছুই নয় এবং সামগ্রীর পার্থক্য কেবলমাত্র ওয়েব প্রকল্পগুলিতে প্রভাব ফেলে। কমান্ড লাইন প্রকল্পের জন্য, উইনফর্ম প্রকল্প বা ইউনিটটেষ্ট প্রকল্প (আমার ক্ষেত্রে) ইত্যাদি None কোনও কিছুই এবং সামগ্রীর আলাদা আচরণ নেই।
এমএসডিএন: "প্রকল্পের আউটপুট গ্রুপ" বা "সামগ্রী সামগ্রী আউটপুট গ্রুপ" কেবলমাত্র কোনও ওয়েব প্রকল্পে ব্যবহৃত শর্তাদি, তাই না?
None
বনামটি Content
কেবলমাত্র প্রকাশ পদক্ষেপের জন্য কার্যকরভাবে কার্যকর হয়েছে বিল্ড স্টেপ নয়। বিল্ড স্টেপের জন্য মনে CopyToOutputDirectory
হয় উভয়ই সেট করা যেতে পারে এবং যদি বিল্ড স্টেপ দ্বারা ফাইলটি অনুলিপি করা হয় তবে তা নিয়ন্ত্রণ করে। এটিও অদ্ভুত বলে মনে হয় যে ডিফল্টরূপে টি 4 টেম্পলেটগুলি Content
আইটেম হিসাবে নয়, None
আইটেম হিসাবে যুক্ত হয় ।
আমার পরিস্থিতিতে, আমার এমএসবিল্ড ফাইলটিতে ItemGroup
চিত্রের সংস্থানগুলির জন্য একটি ছিল যা নীচে প্রদর্শিত হয়েছিল:
<ItemGroup>
<Content Include="Resources\image001.png" />
<Content Include="Resources\image002.png" />
<Content Include="Resources\image003.png" />
<Content Include="Resources\image004.png" />
<None Include="Resources\image005.png" />
<None Include="Resources\image006.png" />
<None Include="Resources\image007.png" />
</ItemGroup>
যদিও আমার প্রকল্প জরিমানা তৈরী করছিল আমার হতাশ কেন আমি একটি মিশ্রণ ছিল বাম Content
এবং None
আমার আইটেম টাইপ উপাদান ItemGroup
। এই এমএসডিএন নিবন্ধটি (ভিজ্যুয়াল স্টুডিও ২০১০-এর জন্য) আমাকে যে গাইডেন্সটি খুঁজছিলাম তা দিয়েছে:
মনে রাখবেন যে যখন রিসোর্স এডিটর কোনও চিত্র যুক্ত করে, তখন এটি বিল্ড অ্যাকশনটিকে কারও কাছে সেট করে না কারণ .resx ফাইলটি চিত্র ফাইলটিকে উল্লেখ করে। নির্মাণের সময়, চিত্রটি .resx ফাইলের বাইরে তৈরি উত্স ফাইলটিতে টানা হয়। চিত্রটি তখন সহজেই .resx ফাইলের জন্য শক্ত-টাইপযুক্ত শ্রেণীর স্বয়ংক্রিয়ভাবে উত্পন্ন উত্সের মাধ্যমে অ্যাক্সেস করা যায়। অতএব, আপনার এই সেটিংটি এম্বেডেড রিসোর্সে পরিবর্তন করা উচিত নয় , কারণ এটি করার ফলে ছবিটিতে দুটি বার সমাবেশে অন্তর্ভুক্ত হবে।
রেজোলিউশন: এই দিক নির্দেশনা দিয়ে, একটি টেক্সট এডিটর ব্যবহার করে, আমি পরিবর্তন Content
আইটেমের প্রকার উপাদান None
।
এছাড়াও, এমএস বিল্ড আইটেমগুলির ওভারভিউয়ের জন্য এটি দেখুন এমএসডিএন নিবন্ধটি দেখুন ।
আমার একটি প্রকল্প রয়েছে যাতে কোনও সংকলনযোগ্য আইটেম নেই (এটি জুঁই ইউনিট পরীক্ষার জন্য এইচটিএমএল এবং জাভাস্ক্রিপ্ট সংরক্ষণ করে)।
একদিন আমার সমাধান (এতে প্রজেক্টটি অন্তর্ভুক্ত ছিল) "প্রকল্পে টার্গেট" বিল্ড "উপস্থিত নেই" বলে সংকলন বন্ধ করে দিয়েছিল।
আমি সংকলকটি আনতে একটি আমদানি যুক্ত করেছি, যা আমার মেশিনে ভাল কাজ করেছে তবে বিল্ড সার্ভারে এমএসবিল্ড ব্যবহার করতে ব্যর্থ হয়েছিল।
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
আমি তখন থেকে একটি লাইন পরিবর্তন করেছি
<None Include="SpecRunner.html" />
প্রতি
<Content Include="SpecRunner.html" />
এবং এটি বিল্ড সার্ভারেও কাজ করে।
.Vstmplate এ আপনার সংজ্ঞায়িত ফাইলগুলি অন্তর্ভুক্ত করতে আপনার কোনও টেম্পলেট প্রকল্প ফাইলের কোনও দরকার নেই অন্যথায় সেগুলি সৃষ্টি ও অনুবাদ প্রক্রিয়াতে হারিয়ে যায়। তারা সবকিছু তৈরি করতে যে টেম্প ফোল্ডারটি ব্যবহার করে তা পিছনে ফেলে যায় এবং তারপরে খুব শীঘ্রই মুছে ফেলা হয়।
আমার ক্ষেত্রে .PubxML এই ফাইলগুলির মধ্যে একটিও নয় তালিকা। এটি সমাধান নির্মাণের জন্য বা ওয়েব প্রকল্পের জন্য একটি স্ট্যাটিক ফাইল হিসাবে নয়। তবে অ্যাজুরে সাইট প্রকাশ করার জন্য, কনফিগারেশনগুলি এতে উপস্থিত রয়েছে।
মাইক্রোসফ্ট নিবন্ধ অনুসারে এগুলি প্রধান প্রকারগুলি আমরা .csproj ফাইল ট্যাগগুলির মধ্যে দেখতে পাই :
কিছুই নয় - ফাইলটি প্রকল্পের আউটপুট গ্রুপে অন্তর্ভুক্ত নয় এবং বিল্ড প্রক্রিয়াতে সংকলিত হয় না। একটি উদাহরণ একটি পাঠ্য ফাইল যা ডকুমেন্টেশন রয়েছে যেমন একটি রিডমি ফাইল।
সংকলন - ফাইলটি বিল্ড আউটপুটে সংকলিত হয়। এই সেটিংটি কোড ফাইলগুলির জন্য ব্যবহৃত হয়।
সামগ্রী - ফাইলটি সংকলিত নয়, তবে সামগ্রী আউটপুট গ্রুপে অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ, এই সেটিংটি .htm বা অন্য ধরণের ওয়েব ফাইলের জন্য ডিফল্ট মান।
এম্বেডেড রিসোর্স - এই ফাইলটি মূল প্রকল্প বিল্ড আউটপুটকে একটি ডিএলএল বা এক্সিকিউটেবল হিসাবে এম্বেড করা হয়েছে। এটি সাধারণত রিসোর্স ফাইলের জন্য ব্যবহৃত হয়।
সামগ্রী ফাইলগুলি কোনও বিল্ডে অন্তর্ভুক্ত নয়, তবে একটি প্রকাশে অন্তর্ভুক্ত রয়েছে।
কোনও ফাইল কোনও বিল্ড বা প্রকাশের অন্তর্ভুক্ত নয়, যদি না সেগুলি আপনার দ্বারা সেভাবে কনফিগার করা হয়। উদাহরণস্বরূপ, "আউটপুট ডিরেক্টরিতে অনুলিপি করুন" "সর্বদা" বা "আরও নতুন" এর সেটিংস তাদের বিল্ড এবং প্রকাশ উভয়ের অন্তর্ভুক্ত করবে cause
Content
গুলি এস পরিবর্তন করা ছিলNone
। আমার মনে হয় যখন আমি রেজারে রূপান্তরিত করার সময় .scx থেকে .cshtML এ ফাইলগুলির নামকরণ করেছি। এগুলি পুনরায় বদলে আমার কিছু স্থাপনার সমস্যাগুলি ম্যানুয়ালি স্থির করে। আমি খুজে পেয়েছি