c# - টাইপ বা নামস্থান নাম খুঁজে পাওয়া যায়নি




visual-studio-2010 reference (11)

Visual Studio 2010 বেশ কয়েকটি প্রকল্পের সাথে আমার একটি C# সমাধান রয়েছে। এক একটি পরীক্ষামূলক প্রকল্প (আমি এটি " PrjTest " কল করব), অন্য একটি Windows Forms Application প্রকল্প (আমি এটি " PrjForm " কল করব)। PrjForm দ্বারা রেফারেন্সকৃত একটি তৃতীয় প্রকল্প রয়েছে যা এটি উল্লেখ করতে এবং সফলভাবে ব্যবহার করতে সক্ষম।

PrjForm রেফারেন্স PrjTest , এবং PrjForm একটি using বিবৃতি সঙ্গে একটি বর্গ আছে:

using PrjTest;
  1. উল্লেখ সঠিকভাবে যোগ করা হয়েছে
  2. বিবৃতি using সঠিকভাবে জায়গায়
  3. বানান সঠিক
  4. PrjTest সফলভাবে বিল্ড
  5. PrjForm প্রায় builds, কিন্তু using PrjTest; ত্রুটি সঙ্গে লাইন:

টাইপ বা নামস্থান নাম 'PrjTest' খুঁজে পাওয়া যায়নি (আপনি কি ব্যবহার নির্দেশিকা বা একটি সমাবেশ রেফারেন্স অনুপস্থিত?)

আমি এই সমাধান করার জন্য নিম্নলিখিত চেষ্টা করেছি:

  1. রেশারপার সরানো হয়েছে (রেশারপারের রেফারেন্সেড প্রকল্পটিকে স্বীকৃতি দেওয়ার কোন সমস্যা ছিল না বলে আমি মনে করি এটি একটি শটের মূল্য হতে পারে)
  2. মুছে ফেলা এবং রেফারেন্স যোগ এবং বিবৃতি ব্যবহার করে
  3. স্ক্র্যাচ থেকে PrjForm বিনোদনিত
  4. PrjForm বর্তমানে PrjTest ফোল্ডার ভিতরে থাকে, আমি এটি একটি বাইরের ফোল্ডারে সরানোর চেষ্টা করেছিলাম
  5. ভিস VS 2010 এর একটি নতুন কপি সহ একটি ভিন্ন কম্পিউটারে সমাধান লোড করা হয়েছে

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

আমি কি আর চেষ্টা করতে পারি?


PrjForm "নেট ফ্রেমওয়ার্ক 4 ক্লায়েন্ট প্রোফাইল" এ সেট করা হয়েছে "আমি এটি" নেট ফ্রেমওয়ার্ক 4 "তে পরিবর্তন করেছি, এবং এখন আমার একটি সফল বিল্ড আছে।

এই খুব আমার জন্য কাজ। অনেক ধন্যবাদ. আমি dotnet এর জন্য একটি RDF উদাহরণ চেষ্টা করেছিলাম যেখানে আমি ডটনেটআরএফ থেকে কিট ডাউনলোড করেছি।

NET4 ক্লায়েন্ট প্রোফাইল: আপনার সমস্ত ক্লায়েন্ট ডেস্কটপ অ্যাপ্লিকেশনগুলির জন্য সর্বদা NET4 ক্লায়েন্ট প্রোফাইলটি লক্ষ্য করুন (উইন্ডোজ ফর্ম এবং WPF অ্যাপ্লিকেশান সহ)।

NET4 সম্পূর্ণ কাঠামো: টার্গেট NET4 কেবলমাত্র আপনার অ্যাপ্লিকেশনের প্রয়োজনীয় বৈশিষ্ট্যগুলি বা অ্যাসেম্বলিগুলি ক্লায়েন্ট প্রোফাইলে অন্তর্ভুক্ত না থাকলেই সম্পূর্ণ করুন । এর মধ্যে রয়েছে: আপনি যদি সার্ভার অ্যাপস তৈরি করেন, যেমন:

  • ASP.Net অ্যাপস
  • সার্ভার-পার্শ্ব ASMX ভিত্তিক ওয়েব পরিষেবাদি

আপনি লিগ্যাসি ক্লায়েন্ট পরিস্থিতিতে ব্যবহার করেন, যেমন: o System.Data.OracleClient.dll ব্যবহার করুন যা NET4 এ বর্জন করা হয় এবং ক্লায়েন্ট প্রোফাইলে অন্তর্ভুক্ত নয়।

  • লিগ্যাসি উইন্ডোজ ওয়ার্কফ্লো ফাউন্ডেশন 3.0 বা 3.5 ব্যবহার করুন (WF3.0, WF3.5)

আপনি যদি বিকাশকারীর পরিস্থিতিগুলি লক্ষ্য করেন এবং MSBuild এর মতো সরঞ্জামটি প্রয়োজন বা System.Design.dll হিসাবে ডিজাইন অ্যাসেম্বলিগুলিতে অ্যাক্সেসের প্রয়োজন হয়


COM / ActiveX রেফারেন্সের জন্য, VS 2012 বিবৃতি ব্যবহার করে এই ত্রুটিটি সঠিকভাবে দেখাবে। যা বেশ মজার, যেহেতু এটি বলছে যে আপনি একটি ব্যবহার বিবৃতি অনুপস্থিত হতে পারে।

এটি সমাধান করতে: আসল COM / ActiveX DLL নিবন্ধন করুন যদিও এটি প্রতিবেশী প্রকল্পে রয়েছে এবং COM চ্যানেলের মাধ্যমে একটি রেফারেন্স যুক্ত করুন, প্রকল্প চ্যানেল নয়। এটি একটি রেফারেন্স হিসাবে ProjectName এর পরিবর্তে Interop.ProjectName যোগ করবে এবং এটি এই অদ্ভুত বাগ সমাধান করবে।


আপনার প্রোজেক্ট প্রোপার্টি পরীক্ষা করুন, আপনার রেফারেন্স পাথগুলি এইরকম খালি থাকা উচিত:

শুভেচ্ছা সহ


আমার ক্ষেত্রে আমি ছিল:

রেফারেন্সড DLL: .NET 4.5

প্রকল্প: .NET 4.0

উপরে উল্লিখিত কারণে, 4.0 প্রকল্পটি 4.5 এর নামস্থানটির অভ্যন্তরে দেখতে পেল না। ড। আমি .NET 4.0 লক্ষ্য করার জন্য ডেলএল recompiled এবং আমি জরিমানা ছিল।


আমি আমার সমাধান করলাম কারণ অন্য প্রকল্পটি .NET 4.5 এর সাথে কোডেড ছিল এবং অন্যটি 4.0 কোডেড ছিল


আমি এটা পরিণত পরিণত এই সমস্যা সম্মুখীন।

প্রকল্প বি রেফারেন্স প্রকল্প এ।

প্রকল্প একটি A.dll হিসাবে সংকলিত (সমাবেশ নাম = একটি)।

প্রকল্প বি compiled হিসাবে A.dll (সমাবেশ নাম A)।

ভিজ্যুয়াল স্টুডিও 2010 এই ধরা ছিল না। Resharper ঠিক ছিল, কিন্তু কম্পাইল হবে না। WinForms ডিজাইনার অসমর্থিত প্ল্যাটফর্ম লক্ষ্য থেকে ফলে বিভ্রান্তিকর ত্রুটি বার্তা দিয়েছেন।

সমাধান, একটি বেদনাদায়ক দিন পরে, নিশ্চিত করা ছিল সমাহারগুলির একই নাম নেই।


এটিও সম্ভব, রেফারেন্সযুক্ত প্রকল্পগুলি .NET 4.0 লক্ষ্য করে, কনসোল অ্যাপ প্রকল্প লক্ষ্য করে .NET 4.0 ক্লায়েন্ট লাইব্রেরীকে লক্ষ্য করে।

যদিও এটি এই বিশেষ ক্ষেত্রে সম্পর্কিত নাও হতে পারে, আমি মনে করি অন্য কেউ এই তথ্যটি দরকারী খুঁজে পেতে পারে।


এমন আচরণ সৃষ্টির অন্য সমস্যাটি কনফিগারেশনগুলি তৈরি করতে পারে।

আমি নির্দিষ্ট ফোল্ডারে নির্মিত কনফিগারেশন সঙ্গে দুটি প্রকল্প ছিল। Debug এবং Any CPU Debug মত এবং দ্বিতীয়ত এটি Debug এবং x86

আমি কী Solution->Context menu->Properties->Configuration properties->Configuration এবং আমি আমার সমস্ত প্রকল্প একই কনফিগারেশনের জন্য Debug এবং x86 ব্যবহার করে সেট করেছি এবং টিক চিহ্ন বানান চেক করেছি।

তারপর প্রকল্প সঠিকভাবে নির্মাণ শুরু এবং নামস্থান দেখতে সক্ষম ছিল।


ব্যবহার বিবৃতি একটি নামস্থান বোঝায়, একটি প্রকল্প নয়

আপনার রেফারেন্সযুক্ত প্রকল্পে উপযুক্তভাবে নামযুক্ত নামস্থান আছে তা নিশ্চিত করুন:

namespace PrjTest
{
     public class Foo
     {
          // etc...
     }
}

MSDN এ নামস্থান সম্পর্কে আরো পড়ুন:


শুধু "নেট ফ্রেমওয়ার্ক 4" এ অ্যাপ্লিকেশন এর লক্ষ্য ফ্রেমওয়ার্ক পরিবর্তন।

এবং ত্রুটি অদৃশ্য হয়ে গেছে।

শুভ কামনা; : ডি


এই প্রশ্ন দেখুন।

এই একটি ক্লায়েন্ট প্রোফাইলিং সমস্যা চালু করে।

PrjForm "নেট ফ্রেমওয়ার্ক 4 ক্লায়েন্ট প্রোফাইল" এ সেট করা হয়েছে "আমি এটি" নেট ফ্রেমওয়ার্ক 4 "তে পরিবর্তন করেছি, এবং এখন আমার একটি সফল বিল্ড আছে।

ধন্যবাদ সবাইকে! আমি এটা অনুমান করি যে, যে সময় অনলাইনে খোঁজার পর, আমি পোস্ট করার পরে কয়েক মিনিট সমাধান পাই, আমি অনুমান করি যে কৌশলটি সঠিক প্রশ্নটি জানতে চাচ্ছে ..






using-directives