c# - পোস্ট বিল্ড ইভেন্ট ব্যবহার করে একটি প্রকল্প থেকে অন্য কপি ফাইল(গুলি)... VS2010




visual-studio-2010 (6)

আমি এটা 3 প্রকল্প সঙ্গে একটি সমাধান আছে। আমি একটি প্রকল্প থেকে অন্য একটি দৃশ্য অনুলিপি করতে হবে। আমি পোস্ট বিল্ড ইভেন্টের মাধ্যমে তৈরি DLL অনুলিপি করতে সক্ষম নই:

তাই আমি প্রকল্পের একটি ফোল্ডারে '/Views/ModuleHome/Index.cshtml' প্রকল্পটি কপি করতে চাই। পোস্ট-বিল্ড ইভেন্টের মাধ্যমে আমি কীভাবে আমার পছন্দসই প্রকল্পে ফাইল (গুলি) কপি করব? ধন্যবাদ


xcopy "$ (টার্গেটেড) * $ (টার্গেটেক্স)" "$ (সমাধানডির) \ স্ক্রিপ্ট \ মাইগ্রেশন কানেকশন \ লাইব্রেরি \" / ফল / আর / ই / আমি

/ এফ - সম্পূর্ণ উৎস এবং লক্ষ্য ফাইল নাম প্রদর্শন করে

/ আর - এটি কেবল-পঠনযোগ্য ফাইলগুলিকে ওভাররাইট করবে

/ Y - একটি বিদ্যমান ফাইল (গুলি) ওভাররাইট করার জন্য প্রম্পট দমন করে

/ আমি - যে গন্তব্য ডিরেক্টরি নির্দেশ করে (কিন্তু সঙ্গে শেষ করা আবশ্যক)

একটি ছোট কৌশল - টার্গেট আপনি অক্ষর দিয়ে শেষ করতে হবে \ xcopy বলতে যে টার্গেট ডিরেক্টরি এবং না ফাইল!


আপনি যদি প্ল্যাটফর্মটি বিবেচনা করতে চান (x64, x86 ইত্যাদি) এবং কনফিগারেশন (ডিবাগ বা রিলিজ) এটি এমন কিছু হবে:

xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y 

এই কমান্ড আমার জন্য একটি কবজ মত কাজ করে:

for /r "$(SolutionDir)libraries" %%f in (*.dll, *.exe) do @xcopy "%%f" "$(TargetDir)"

এটি MySolutionPath\libraries বা bin\release MySolutionPath\libraries থেকে প্রতিটি MySolutionPath\libraries এবং exe ফাইল কপি করে।

আপনি here আরও তথ্য পেতে পারেন


পূর্ববর্তী উত্তর ভালো লেগেছে, আমি xcopy সুপারিশ করছি। যাইহোক, আমি হ্যালিগার এঞ্জেনের উত্তর /exclude প্যারামিটার /exclude দিয়ে উত্তর যোগ করতে চাই। মনে হচ্ছে প্যারামিটারের সাথে একটি বাগ মনে হচ্ছে এটি দীর্ঘস্থায়ী পাথের সাথে কাজ করতে বাধা দেয় না বা স্পেস ধারণ করে, কোটগুলি কাজ করবে না। পাথ নামগুলি "DOS" -র "ডকুমেন্টস" -এর সাথে "ডকুমেন্ট ~ 1" তে অনুবাদ করা হবে ( এই উত্স অনুসারে)।

তাই, যদি আপনি \ পরামিতিটি বাদ দিতে চান তবে here একটি কার্যকারিতা here :

cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path

উল্লেখ্য যে উত্স এবং গন্তব্য পথগুলি (এবং যদি তাদের স্পেস থাকে তবে) উদ্ধৃতির মধ্যে থাকা উচিত তবে ফাইলটি বাদ দেওয়ার পথ নয়


xcopy "$(ProjectDir)Views\Home\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\Home"

এবং যদি আপনি পুরো ফোল্ডার অনুলিপি করতে চান:

xcopy /E /Y "$(ProjectDir)Views" "$(SolutionDir)MEFMVCPOC\Views"

আপডেট: এখানে কাজ সংস্করণ

xcopy "$(ProjectDir)Views\ModuleAHome\Index.cshtml" "$(SolutionDir)MEFMVCPOC\Views\ModuleAHome\" /Y /I

এখানে xcopy সাথে কিছু সাধারণভাবে ব্যবহৃত সুইচ রয়েছে:

/I - treat as a directory if copying multiple files
/Q - Do not display the files being copied.
/S - Copy subdirectories unless empty.
/E - Copy empty subdirectories.
/Y - Do not prompt for overwrite of existing files.
/R - Overwrite read only files.

xcopy "your-source-path" "your-destination-path" /D /y /s /r /exclude:path-to-txt- file\ExcludedFilesList.txt

উত্স পাথ এবং গন্তব্য পথ উদ্ধৃতি লক্ষ্য করুন, কিন্তু txt ফাইল exludelist করার পথে না।

ExcludedFilesList.txt এর বিষয়বস্তু নিম্নরূপ: .cs \

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

/D Copy only files that are modified in sourcepath
/y Suppresses prompting to confirm you want to overwrite an existing destination file.
/s Copies directories and subdirectories except empty ones.
/r Overwrites read-only files.




visual-studio-2010