.NET কোর (নন-এসপি.এনইটি কোর) প্রকল্পগুলির জন্য ভিএস2017 সলিউশন এক্সপ্লোরারে ফাইলগুলি বাসা বাঁধতে পারে?


86

"পুরাতন স্কুল" এমএসবিল্ড প্রকল্পগুলিতে - যেমন এখনও উইন্ডোজ ফর্মগুলি ভিএস2017-এ ব্যবহার করা হয়েছে - উদাহরণস্বরূপ - ফাইলগুলি DependentUponসিএসপিজেজ ফাইলের কোনও আইটেমের মাধ্যমে "নেস্টেড" হতে পারে ।

আমি এটিকে নোডা সময়ের সাথে একত্রে গ্রুপ ইউনিট পরীক্ষায় ব্যবহার করেছি, যেমন

<Compile Include="LocalDateTest.PeriodArithmetic.cs">
  <DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>

এটি সহজেই চলাচলযোগ্য পরীক্ষার দিকে পরিচালিত করেছিল:

নেস্টেড পরীক্ষা

project.json.NET কোরের দিকে যাওয়ার সময় আমি এই বৈশিষ্ট্যটি জেনে শুনে "হারিয়েছি" , তবে এমএসবিল্ডে রূপান্তরিত হওয়ার পরে এটি ফিরে আসবে বলে আশাবাদী। তবে, দেখে মনে হচ্ছে এমএসবিল্ড প্রকল্পগুলি। নেট কোর এসডিকে (মূল উপাদান <Project Sdk="Microsoft.NET.Sdk">) ভিত্তিতে ভিজুয়াল স্টুডিও 2017 তে একই চিকিত্সা পায় না, এমনকি যদি কোনও ItemGroup"পুরাতন স্কুল" প্রকল্পের মতো একই উপাদানগুলির সাথে ম্যানুয়ালি যোগ করা হয়।

এএসপি.নেট কোর প্রকল্পগুলি মিনেফাইড সিএসএস এবং জাভাস্ক্রিপ্টের জন্য স্বয়ংক্রিয়ভাবে বাসা বেঁধে নেয়, তবে কীভাবে .NET কোর লাইব্রেরি প্রকল্পগুলিতে সি # তে এটি প্রয়োগ করতে হবে তা পরিষ্কার নয়।

উত্তর:


106

আমি এটি আমার Microsoft.NET.Sdkস্টাইলের একটি প্রকল্পে নিম্নলিখিতগুলির মতো কিছু ব্যবহার করে কাজ করছি:

<ItemGroup>
  <Compile Update="LocalDateTest.*.cs">
    <DependentUpon>LocalDateTest.cs</DependentUpon>
  </Compile>
</ItemGroup>

এখানে কৌশলটি Updateপরিবর্তে ব্যবহার করা হয় Include। এর কারণ হ'ল অন্তর্নিহিত আইটেমগুলি মূল প্রকল্পের আগে আমদানি করা প্রপস ফাইল থেকে আসছে। একটি অতিরিক্ত অতিরিক্ত Includeইতিমধ্যে অন্তর্ভুক্ত করা ফাইলগুলিকে প্রভাবিত করবে না তবে সেগুলি ব্যবহার করে পরিবর্তন করা যেতে পারে Update


4
ঠিক আছে, এটি উদ্ভট - আমি নিশ্চিত যে আমি এটি চেষ্টা করেছি, এবং এটি কার্যকর ছিল না। এটা এখন। খুব, খুব উদ্ভট। আহ - এটি "অন্তর্ভুক্ত" না করে "আপডেট"।
জন স্কিটি

4
আমাকে অবশ্যই স্বীকার করতে হবে যে আমি অন্তর্ভুক্ত বনাম আপডেট কেন পার্থক্য রাখে তা নিশ্চিত not কিছু অতিরিক্ত তথ্য সরবরাহ করার জন্য একটি সরঞ্জাম সরঞ্জামকে পছন্দ করবেন।
ম্যাথু কিং

4
@ ম্যাথেকিংকিং: আমার ধারণা এটি *.csহ'ল কারণ এটি ইতিমধ্যে ডিফল্টরূপে অন্তর্ভুক্ত রয়েছে এবং নেস্টেড উপাদান সামগ্রীটি এড়ানো যায়।
জন স্কিটি 11

4
@ জোনস্কিট, হ্যাঁ ... যেমন আপনি বলেছিলেন এটি উদ্ভট ... আমি অন্য প্রকল্পে আরও একবার চেষ্টা করেছি এবং এটি কার্যকর হয়েছে। আমি যে ক্লাসগুলিতে তাদের পরীক্ষা করি সেগুলির পিছনে বাসা পরীক্ষা করতে চাই , তবে এটি কয়েকশ ফাইলের জন্য ম্যানুয়ালি করা পাগল হবে ... এমনকি যদি আমি এটির জন্য একটি এক্সটেনশানও লিখি - প্রকল্প ফাইলটি ভাল লাগবে না। সুতরাং আমি অবশেষে Microsoft.NET.Sdk.Webক্লাস লাইব্রেরির জন্য সর্বদা ব্যবহার করার সিদ্ধান্ত নিয়েছি । এখন আমার নেস্টিং মোটেও কনফিগার করতে হবে না।
পাভেল আগারকোভ

4
আমি কেবল এটি পরীক্ষা করে দেখেছি এবং আপনার একই বিল্ডএকশন নাম ব্যবহার করা দরকার যেমন আপনার ফাইলের বৈশিষ্ট্যের উপর ভিত্তি করে 'সংকলন' প্রতিস্থাপন করুন 'সামগ্রী' বা 'কিছুই নয়' দিয়ে। আমার ক্ষেত্রে এটি ছিল 'বিষয়বস্তু'
এসএম

11

ভিজ্যুয়াল স্টুডিও 2019-এ, আমার কাছে একটি নেট নেট 2.2 <Project Sdk="Microsoft.NET.Sdk">প্রকল্প রয়েছে যাতে আমি খুব সুন্দরভাবে নেস্টেড অ্যাপসেটেটিংস.জসন / অ্যাপসেটেটিংস.ডেবলেপমেন্ট.জসন ফাইলগুলি চেয়েছিলাম, যেমন তারা <Project Sdk="Microsoft.NET.Sdk.Web">প্রকল্পগুলির জন্য স্বয়ংক্রিয়ভাবে করে do

.CSPROJ এ আমাকে যা যুক্ত করতে হবে তা এখানে:

  <ItemGroup>
    <Content Include="appsettings.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Include="appsettings.Development.json">
      <DependentUpon>appsettings.json</DependentUpon>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

এর পরে, সমাধান এক্সপ্লোরারে কার্যকর হওয়ার জন্য আমাকে প্রকল্পটি আনলোড / পুনরায় লোড করতে হয়েছিল। নোট করুন যে আমি এই ফাইলগুলি সর্বদা আউটপুট ডিরেক্টরিতে অনুলিপি করতে সেট করেছিলাম।


6

আপনি যদি প্রতিটি প্রবেশের হাতের কারুকাজের পরিবর্তে এটি ওয়াইল্ডকার্ড করতে চান তবে আপনার .csproj ফাইলে এই লাইনগুলি যুক্ত করার অর্থ Foo.tests.cs এর মতো কিছু স্বয়ংক্রিয়ভাবে Foo.cs এর অধীনে বাসা বাঁধে gets

.NET কোর 3.1.0 এর সাথে ভিএস2019 এ পরীক্ষিত এবং কাজ করছে

  <ItemGroup>
    <Compile Update="**\*.tests.cs">
      <DependentUpon>$([System.String]::Copy(%(Filename)).Replace(".tests",".cs"))</DependentUpon>
    </Compile>
  </ItemGroup>

2

আপনি ব্যবহার যদি .netstandardx.x আপনি ব্যবহার করতে পারবেন না NestedIn । এটা কাজ করছে না.

আপনি নিজের .csproj এ ম্যানুয়ালি করতে পারেন

<ItemGroup><Compile Include="BaseClass">ChildClass.cs</Compile></ItemGroup>

-6

আপনি যদি একই উপসর্গ ব্যবহার করেন তবে এটি স্বয়ংক্রিয়ভাবে ফাইলগুলি বাসাবে।

উদাহরণ:

AsemblyInfo.cs 
AsemblyInfo.local.cs

4
প্রশ্নটি ছিল নেট কোর সম্পর্কে। আপনি কি আপনার সন্দেহ পরিষ্কার করতে পারবেন?
মিগুয়েল ডমিংগস

4
আপনি কি ভিএস ২০১7 এ চেষ্টা করেছেন? আমার কাছে এখনই একটি সমাধান খোলা আছে যা। নেটফ্রেমওয়ার্ক 4.7.1, কোর 2.0 এবং স্ট্যান্ডার্ড 2.1 আছে has আমি প্রতিটি ধরণের প্রকল্পে একটি Class.cs এবং তারপরে একটি Class.local.cs যুক্ত করার চেষ্টা করেছি। কোনও স্বয়ংক্রিয় বাসা নেই। ম্যানুয়াল বাসা বাঁধার কাজ করে। ভিএস2017 (15.7.4)
অ্যান্ড্রু

ভিজ্যুয়াল স্টুডিও 2017 15.9.3: একই উপসর্গযুক্ত ফাইলগুলি স্বয়ংক্রিয়ভাবে সলিউশন এক্সপ্লোরারে নেস্ট করা হচ্ছে
brsfan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.