নির্বাচিত উত্তরটি পরামর্শ দেয় যে সমাধান ফোল্ডারগুলির পরিবর্তে প্রকৃত প্রকল্পগুলি ব্যবহার করা সম্ভব হবে, তবে কীভাবে এটি সত্য তা ব্যাখ্যা করে না। আমি অনুমান করি যে আমি এখানে যা বর্ণনা করছি তা সম্ভবত অর্জনের সবচেয়ে কম বিশ্রী উপায় ... :- পি
নিয়মিত প্রকল্প ফাইলগুলির সমস্যা হ'ল তারা শেষ পর্যন্ত সংকলন করবে MSBUILD
। এবং যদি আপনি এমন একটি প্রকল্প চান যা কেবলমাত্র অ-সংকলনযোগ্য ফাইলগুলিতে থাকে তবে এটি একটি সমস্যা হবে।
তবে কিছু সময় আগে ভিজ্যুয়াল স্টুডিও একটি নতুন প্রকল্পের প্রকার: ভাগ করা প্রকল্প (.shproj এক্সটেনশন) প্রবর্তন করেছিল। এই প্রকল্পের ধরণটি ডিফল্টরূপে সংকলিত হয় না , তবে কেবলমাত্র (এবং কেবলমাত্র যদি) এটি অন্য প্রকল্প দ্বারা রেফারেন্স করা হয়।
সুতরাং এখানে কৌতূহলের একটি অংশ হ'ল সমাধান ফোল্ডারের পরিবর্তে ভাগ করা প্রকল্পগুলি ব্যবহার করা । কোনও অংশীদারি প্রকল্প যুক্ত করা স্পষ্টভাবে সম্ভব যা অন্য কোনও প্রকল্প দ্বারা রেফারেন্স করা হয় না , যার অর্থ আমরা উপরে উপস্থাপিত সমস্যাটি এড়াতে পারি।
তারপরে <None Include="**/*" />
.shproj ফাইলে ক্লজ ব্যবহার করে আমরা এটিকে স্বয়ংক্রিয়ভাবে যে কোনও নতুন ফাইল এবং / অথবা সাবফোল্ডারগুলি প্রতিবিম্বিত করতে পারি ।
সুতরাং মূলত এটি করুন:
- আপনার সমাধানে একটি নতুন ফোল্ডার তৈরি করুন।
- এই নতুন ফোল্ডারের মূলটিতে একটি নতুন .shproj ফাইল যুক্ত করুন।
- আপনার সমাধানে নতুন .shproj রেফারেন্স করুন।
উদাহরণস্বরূপ, আমার ক্ষেত্রে, আমি একটি ডকারডেভ.শপ্রজ তৈরি করেছি, তাই আমি কিছু ডকার-সম্পর্কিত স্ক্রিপ্টগুলি গ্রুপ করতে পারি যা কেবলমাত্র আমাদের উন্নয়ন মেশিনে চালিত হয়:
<?xml version="1.0" encoding="utf-8"?>
<!-- DockerDev/DockerDev.shproj -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="**/*" />
</ItemGroup>
</Project>
এই .shproj ফাইল ট্র্যাক রাখতে হবে কোন ফাইল, কোনো এই নতুন subfolder DockerDev
আমার দ্রবণে ফোল্ডার।
আমি যতদূর দেখতে পেলাম, এই সমাধানটি ওপি অনুরোধের মতো বেশ কার্যকরীভাবে কাজ করে: এটি কোনও ফোল্ডারে কোনও সংকলনযোগ্য রেফারেন্স হিসাবে কাজ করবে এবং এটি স্বয়ংক্রিয়ভাবে এতে পরিবর্তনগুলি প্রতিফলিত করবে।