আমি ভিজুয়াল স্টুডিওতে কোনও ডিএলএল ফাইলের পথ কীভাবে সেট করব?


130

আমি একটি অ্যাপ্লিকেশন তৈরি করেছি যা ডিএলএল ফাইলের উপর নির্ভর করে। আমি যখন আমার অ্যাপ্লিকেশনটি ডিবাগ করব তখন অ্যাপ্লিকেশনগুলিতে অভিযোগ করা উচিত:

"এই অ্যাপ্লিকেশনটি শুরু করতে ব্যর্থ হয়েছে কারণ xxx.dll পাওয়া যায়নি।"

সুতরাং আমি আমার .vcproj ফাইল হিসাবে একই ডিরেক্টরিতে DLL ফাইল কপি করতে হবে।

কোনও প্রাসঙ্গিক পথ বা (পছন্দসই নয়) কিছু নিখুঁত পথে DLL ফাইল সন্ধানের জন্য প্রকল্পটি সেট করার কোনও উপায় আছে কি?

প্রকল্পের সেটিংসে আমরা কীভাবে অন্তর্ভুক্ত করব এবং লাইব্রেরির পথটি সেট করব এর অনুরূপ ধারণা।

মানে আমি যখন আমার অ্যাপ্লিকেশনটি ডিবাগ করব (আঘাত F5) তখন উপরের ত্রুটিটি পপ আপ হয়ে যাবে।

উত্তর:


196
  1. প্রকল্পের বৈশিষ্ট্যগুলিতে যান (Alt + F7)
  2. ডিবাগিংয়ের অধীনে, ডানদিকে তাকান
  3. একটি পরিবেশের ক্ষেত্র আছে।
  4. সেখানে আপনার আপেক্ষিক পাথ যুক্ত করুন (vcproj ফোল্ডারের তুলনায়) অর্থাত্‍ .. app কিছু ফ্রেমওয়ার্ক \ PATH=%PATH%;$(ProjectDir)\some-framework\libলাইব পাথ সংযোজন বা প্রিপেন্ড করেPATH=C:\some-framework\lib;%PATH%
  5. আবার F5 চাপুন (ডিবাগ) এবং এটি কাজ করা উচিত।

15
পরিবেশ ক্ষেত্রটি NAME = VALUE সেমিকোলন-সীমিত জোড়গুলি গ্রহণ করে। ভিএল ডিবাগার ডিএলএলগুলির জন্য অতিরিক্ত অবস্থানগুলি অনুসন্ধান করতে প্যাথ ভেরিয়েবলের সাথে যুক্ত করুন: PATH =% PATH%; Project (প্রজেক্টডির) লাইব
ব্রেন্ট ফাউস্ট

1
রিলিজ বিল্ডের জন্যও কি একইরকম উপায় রয়েছে?
নরেক

আমার ll (লাইব্রেরিপথ) ভেরিয়েবলে dll পাথ যুক্ত করতে হবে (বা এটি কনফিগার প্রোপার্টি-> ভিসি ++ ডিরেক্টরি সেটিংসে লাইব্রেরি ডিরেক্টরিতে অন্তর্ভুক্ত তালিকায় অন্তর্ভুক্ত করা উচিত)।
ফস্টার বোন্ডোগল

1
@ স্লিপপিডি। টম্পসন হ্যাঁ, আপনি ঠিক বলেছেন। তবে আপনি পরিবর্তে Alt + p, p ব্যবহার করে একই জিনিস অর্জন করতে পারেন।
জেনিক্স

1
@ স্লিপডি.টমসন আহ, আপনার মন্তব্যটি আবার পড়ে, আমি মনে করি আপনি কী বোঝাতে চেয়েছিলেন তা ভুল বুঝেছি। হ্যা আমি রাজি. তবে কমপক্ষে, কিছু হটকিগুলি ভিজ্যুয়াল স্টুডিওতে কখনও পরিবর্তিত হয় না এবং তাদের মধ্যে 'Alt + p, p' অন্যতম। এটি সেখানে 'Alt + F7' এর সাথে ছিল, যার অর্থ এখন যা আপনি জানেন else এছাড়াও, 'Alt + p, p' এর অর্থ 'প্রকল্প মেনু> * বৈশিষ্ট্য'।
জেনিক্স

7

আপনি লোডলিবারি () কল করার সময় লোডার যে অনুসন্ধানের পথটি ব্যবহার করে সেটি সেটডেলডাইরেক্টরি () ফাংশনটি ব্যবহার করে পরিবর্তন করা যেতে পারে । সুতরাং আপনি কেবল এটি কল করতে পারেন এবং এটি লোড করার আগে আপনার নির্ভরতার পথে পথ জুড়তে পারেন।

ডিএলএল অনুসন্ধান আদেশও দেখুন ।


7

প্রকল্পের বৈশিষ্ট্যগুলি -> রেফারেন্স পাথগুলি দিয়ে যান

তারপরে ডিএলএল সহ ফোল্ডার যুক্ত করুন


4
দয়া করে একাধিক প্রশ্নের একই রকম উত্তর পোস্ট করবেন না। একটি ভাল উত্তর পোস্ট করুন, তারপরে অন্য প্রশ্নগুলিকে সদৃশ হিসাবে বন্ধ করতে ভোট / পতাকা দিন। যদি প্রশ্নটি সদৃশ না হয় তবে আপনার প্রশ্নের উত্তরগুলি শিখুন।
durron597

1
এতদূর সেরা উত্তর :)
রথমা

2
এটি C ++ প্রকল্পে ভিজ্যুয়াল স্টুডিও 2015-এ উপলব্ধ বলে মনে হচ্ছে না। ভিজ্যুয়াল স্টুডিও সংস্করণ এবং প্রকল্পের ধরণের কোন সমন্বয় এই বিকল্পটিকে সমর্থন করে?
ফিলিপ বার্তেক

ওপির প্রশ্নটি সি ++ সম্পর্কে ছিল তবে এই উত্তরটি সি # এর জন্য।
জেনিক্স

সি # এবং ভিএস2017
মির্জোগ

4

আর একটি সম্ভাবনা Working Directoryহ'ল ডিবাগিং অপশনগুলির অধীনে ডিরেক্টরিটি ডিএলএল সেট করতে হবে।

সম্পাদনা: আমি ভিজ্যুয়াল স্টুডিও শুরু করার জন্য একটি ব্যাচ ফাইল ব্যবহার করে উল্লেখ করতে যাচ্ছি (এবং ব্যাচের ফাইলে PATH ভেরিয়েবল সেট করে)। সুতরাং তখন কিছুটা অনুসন্ধান করে দেখুন যে ঠিক এই প্রশ্নটি খুব আগে এই পোস্টে জিজ্ঞাসা করা হয়েছিল । উত্তরটি ব্যাচের ফাইল বিকল্পের পাশাপাশি প্রজেক্ট সেটিংসের প্রস্তাব দেয় যা সম্ভবত কাজটি করতে পারে (আমি এটি পরীক্ষা করিনি)।


আমি যদি 2 ঘন্টার উপর নির্ভর করি, প্রত্যেকে তার নিজস্ব ডিরেক্টরিতে বাস করে? (আমি উপরে আমার প্রশ্নটি সহজ করে দিয়েছি)
শিববধু

আমি মনে করি না যে এই সমাধানটি একটি একক ডিরেক্টরিের চেয়ে বেশি জন্য কাজ করা সম্ভব হবে।
মার্ক উইলকিনস

3

আপনার প্রকল্পের বৈশিষ্ট্যগুলিতে (প্রকল্পে ডান ক্লিক করুন, সম্পত্তি বোতামে ক্লিক করুন) ▶ কনফিগারেশন বৈশিষ্ট্য ▶ ইভেন্টগুলি তৈরি করুন ▶ পোস্ট বিল্ড ইভেন্টগুলি ▶ কমান্ড লাইন।

কমান্ড লাইনে একটি নির্দেশনা সম্পাদনা করুন এবং যুক্ত করুন। উদাহরণস্বরূপ, প্রোগ্রামটি সম্পাদন করা হচ্ছে এমন স্থানের উত্স থেকে বোটান.ডিল অনুলিপি করুন।

copy /Y "$(SolutionDir)ProjectDirs\x64\Botan\lib\botan.dll" "$(TargetDir)"

প্রকল্পের সম্পত্তি


এটি করা সঠিক কিনা আমার কোনও ধারণা নেই তবে আইডিই আমাকে সেই বিকল্পটি দেয় এবং এটি কার্যকর হয়েছে, আমি মনে করি আপনার প্রোগ্রামটি বিতরণ করার জন্য যদি আমি সমস্ত প্রয়োজনীয় ফাইলগুলি অন্য ফোল্ডারে নকল করতে চাই তবে এটি একটি ভাল বিকল্প। সাধারণ বানান তবে কার্যকর। এখানে এই প্রশ্নে একই প্রান্তে পৌঁছানোর জন্য বিভিন্ন উত্তর রয়েছে। তবে আমি এই বিকল্পটি ব্যবহার করি এবং অনেক মাথাব্যথা এড়াতে পারি।
জোমা

অন্যান্য বিকল্পগুলি আমার পক্ষে কার্যকর হয়নি, কেবল এটিই একটি, তবে মনে হচ্ছে অন্যের সঠিক পথ হওয়া উচিত।
rjferguson

-1

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.