আমি ভিএস 2010 ওয়েব ডিপ্লোয়মেন্ট প্যাকেজ ব্যবহার করে অতিরিক্ত ফাইলগুলি কীভাবে অন্তর্ভুক্ত করব তাতে আমি একটি অনুরূপ তবে ভিন্ন প্রশ্নের উত্তর দিয়েছি ? ।
আপনার দৃশ্যে আপনি পোস্ট বিল্ড ইভেন্ট ব্যবহার করছেন, আমি পোস্ট বিল্ড ইভেন্টটি বাদ দেওয়ার এবং পোস্ট বিল্ড ইভেন্টের পরিবর্তে আপনার নিজের এমএসবিল্ড লক্ষ্যগুলি ব্যবহার করে আপনার ক্রিয়াগুলি বাস্তবায়নের পরামর্শ দেব। নীচে আপনি অন্য উত্তরের পাঠ্যটি পাবেন।
থেকে: কীভাবে আপনি ভিএস 2010 ওয়েব ডিপ্লোয়মেন্ট প্যাকেজ ব্যবহার করে অতিরিক্ত ফাইলগুলি অন্তর্ভুক্ত করবেন?
দুর্দান্ত প্রশ্ন। আমি এই সম্পর্কে ওয়েব ডিপ্লোমেন্ট সরঞ্জামে (এমএসডিপপ্লয়) একটি খুব বিস্তারিত ব্লগ এন্ট্রি পোস্ট করেছি : অতিরিক্ত ফাইল বা নির্দিষ্ট ফাইলগুলি বাদ দিয়ে প্যাকেজ তৈরি করুন ।
এখানে সংক্ষিপ্তসার। ফাইলগুলি অন্তর্ভুক্ত করার পরে, আমি কীভাবে ফাইলগুলিও বাদ দিতে পারি তা দেখাই।
অতিরিক্ত ফাইল সহ
প্যাকেজে অতিরিক্ত ফাইলগুলি অন্তর্ভুক্ত করা কিছুটা শক্ত তবে আপনি যদি এমএসবিল্ডের সাথে স্বাচ্ছন্দ্য বোধ করেন তবে কোনও বিগ নেই এবং যদি আপনি তা না হন তবে এটি পড়ুন। এটি করার জন্য আমাদের প্রক্রিয়াটির যে অংশটি প্যাকেজিংয়ের জন্য ফাইলগুলি সংগ্রহ করে তার অংশে প্রবেশ করতে হবে। আমাদের যে লক্ষ্যটি প্রসারিত করতে হবে তার নাম কপিএলএফএলফিটসসোসিংফোল্ডার। এই টার্গেটটির একটি নির্ভরতার সম্পত্তি রয়েছে, পাইপলাইনপ্রেডপ্লেপলয়কপিআলফাইলসটোঅনফোল্ডারডেপেন্ডসঅন, যে আমরা নিজের টার্গেটটি ট্যাপ করে ইনজেক্ট করতে পারি। সুতরাং আমরা কাস্টমকলেক্টফাইলস নামে একটি লক্ষ্য তৈরি করব এবং এটি প্রক্রিয়াতে ইনজেক্ট করব। আমরা নিম্নলিখিতটি দিয়ে এটি অর্জন করি (আমদানির বিবরণের পরে মনে রাখবেন)।
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
এটি প্রক্রিয়াটিতে আমাদের লক্ষ্য যুক্ত করবে, এখন আমাদের লক্ষ্যটি নিজেরাই নির্ধারণ করতে হবে। আসুন ধরে নেওয়া যাক আপনার কাছে অতিরিক্ত ফাইল নামে একটি ফোল্ডার রয়েছে যা আপনার ওয়েব প্রকল্পের 1 স্তরের উপরে বসে। আপনি এই সমস্ত ফাইল অন্তর্ভুক্ত করতে চান। এখানে কাস্টমকোলেক্টফাইলস লক্ষ্য এবং আমরা তার পরে আলোচনা করব discuss
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\Extra Files\**\*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
এখানে আমি যা করেছি তা _CustomFiles আইটেমটি তৈরি করা হয়েছিল এবং অন্তর্ভুক্ত বৈশিষ্ট্যে এটি ফোল্ডারে থাকা সমস্ত ফাইল এবং এর নীচে যে কোনও ফোল্ডার তুলতে বলেছিল। তারপরে আমি এই আইটেমটি ফাইলফোরপ্যাকেজিংফ্রমপ্রজেক্ট আইটেমটি পপুলেট করতে ব্যবহার করি। এটি MSDeploy আসলে অতিরিক্ত ফাইল যুক্ত করতে ব্যবহার করে item এছাড়াও লক্ষ্য করুন যে আমি মেটাটাটা ডেস্টিনেশন রিলেটিভপথ মান ঘোষণা করেছিলাম। এটি প্যাকেজের মধ্যে যে আপেক্ষিক পথটি স্থাপন করবে তা নির্ধারণ করবে। আমি এখানে অতিরিক্ত ফাইল% (রিক্রুসিভডির)% (ফাইলের নাম)% (এক্সটেনশন) বিবৃতিটি ব্যবহার করেছি। এটি যা বলছে তা হ'ল এটি অতিরিক্ত ফাইল ফোল্ডারের অধীনে প্যাকেজে একই আপেক্ষিক স্থানে স্থাপন করা।
ফাইল বাদে
আপনি যদি নীচের দিকে ভিএস ২০১০ দিয়ে তৈরি ওয়েব অ্যাপ্লিকেশনটির প্রকল্প ফাইলটি খুলেন তবে এর সাথে একটি লাইন পাবেন।
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
বিটিডাব্লু আপনি ভিএস এর ভিতরে প্রকল্প ফাইলটি খুলতে পারেন প্রকল্পটি আনডলোড প্রকল্পে ডান ক্লিক করুন। তারপরে আনলোড হওয়া প্রকল্পে ডান ক্লিক করুন এবং সম্পাদনা প্রকল্পটি নির্বাচন করুন।
এই বিবৃতিতে আমাদের প্রয়োজন সমস্ত লক্ষ্য এবং কাজ অন্তর্ভুক্ত করবে। আমাদের কাস্টমাইজেশনগুলির বেশিরভাগটি সেই আমদানির পরে হওয়া উচিত, যদি আপনি নিশ্চিত না হন তবে পরে রাখুন! সুতরাং যদি আপনার কাছে ফাইলগুলি বাদ দেওয়ার জন্য একটি আইটেমের নাম থাকে, এক্সক্লুডফ্রমপ্যাকেজফিলস, এটি করতে ব্যবহৃত হতে পারে। উদাহরণস্বরূপ বলা যাক যে আপনার কাছে নমুনা.ডেবগ.জেএস নামের ফাইল রয়েছে যা আপনার ওয়েব অ্যাপ্লিকেশনটিতে অন্তর্ভুক্ত রয়েছে তবে আপনি চান যে ফাইলটি তৈরি প্যাকেজগুলি থেকে বাদ দেওয়া হোক। আপনি এই আমদানির বিবৃতি পরে নীচে স্নিপেট রাখতে পারেন।
<ItemGroup>
<ExcludeFromPackageFiles Include="Sample.Debug.xml">
<FromTarget>Project</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
এই আইটেমটিকে জনবহুল করে ঘোষণার মাধ্যমে ফাইলগুলি স্বয়ংক্রিয়ভাবে বাদ দেওয়া হবে। এখানে fromTarget মেটাডেটা ব্যবহার নোট করুন। আমি এখানে notুকব না, তবে আপনাকে সর্বদা এটি নির্দিষ্ট করতে হবে।