c# - प्रकार या नामस्थान नाम नहीं मिला




visual-studio-2010 reference (11)

PrjForm को "नेट फ्रेमवर्क 4 क्लाइंट प्रोफाइल" पर सेट किया गया था, मैंने इसे "नेट फ्रेमवर्क 4" में बदल दिया, और अब मेरे पास एक सफल निर्माण है।

यह भी मेरे लिए काम किया। बहुत बहुत धन्यवाद। मैं dotNet के लिए आरडीएफ उदाहरण की कोशिश कर रहा था, जहां मैंने dotnetrdf से किट डाउनलोड की थी।

नेट 4 क्लाइंट प्रोफाइल: अपने सभी क्लाइंट डेस्कटॉप एप्लिकेशन (विंडोज फॉर्म और डब्ल्यूपीएफ ऐप्स सहित) के लिए हमेशा नेट 4 क्लाइंट प्रोफाइल को लक्षित करें।

नेट 4 पूर्ण ढांचा: लक्ष्य नेट 4 केवल तभी पूर्ण करें जब आपके ऐप की सुविधाओं या असेंबली को क्लाइंट प्रोफाइल में शामिल नहीं किया गया हो। इसमें शामिल हैं: यदि आप सर्वर ऐप्स बना रहे हैं, जैसे कि:

  • एएसपी.Net एप्स
  • सर्वर-साइड एएसएमएक्स आधारित वेब सेवाएं

यदि आप विरासत क्लाइंट परिदृश्यों का उपयोग करते हैं, जैसे: o System.Data.OracleClient.dll का उपयोग करें जिसे नेट 4 में बहिष्कृत किया गया है और क्लाइंट प्रोफ़ाइल में शामिल नहीं है।

  • विरासत विंडोज वर्कफ़्लो फाउंडेशन 3.0 या 3.5 (WF3.0, WF3.5) का उपयोग करें

यदि आप डेवलपर परिदृश्य को लक्षित करते हैं और MSBuild जैसे टूल की आवश्यकता है या System.Design.dll जैसे डिज़ाइन असेंबली तक पहुंच की आवश्यकता है

इस प्रश्न का उत्तर यहां दिया गया है:

मेरे पास Visual Studio 2010 में कई परियोजनाओं के साथ C# समाधान है। एक एक टेस्ट प्रोजेक्ट है (मैं इसे " प्रिजेस्ट " कहूंगा ), दूसरा Windows Forms Application प्रोजेक्ट है (मैं इसे " प्रिज्फोर्म " कहूंगा )। PrjForm द्वारा संदर्भित एक तीसरी परियोजना भी है, जो इसे संदर्भित करने और सफलतापूर्वक उपयोग करने में सक्षम है।

PrjForm संदर्भ PrjTest , और PrjForm एक using कथन के साथ एक वर्ग है:

using PrjTest;
  1. संदर्भ सही ढंग से जोड़ा गया है
  2. कथन का using सही जगह पर है
  3. वर्तनी सही है
  4. PrjTest सफलतापूर्वक बनाता है
  5. PrjForm लगभग बनाता है, लेकिन using PrjTest; त्रुटि के साथ लाइन:

प्रकार या नामस्थान नाम 'PrjTest' नहीं मिला (क्या आप एक प्रयोग निर्देश या असेंबली संदर्भ खो रहे हैं?)

मैंने इसे हल करने के लिए निम्न कोशिश की है:

  1. रिशेर्पर को हटाया गया (चूंकि रिशेर्पर को संदर्भित परियोजना को पहचानने में कोई परेशानी नहीं थी, मैंने सोचा कि यह एक शॉट के लायक हो सकता है)
  2. संदर्भ को हटाया और पुनः जोड़ा और कथन का उपयोग कर
  3. खरोंच से मनोरंजन PrjForm
  4. PrjForm वर्तमान में PrjTest फ़ोल्डर के अंदर रहता है, मैंने इसे किसी बाहरी फ़ोल्डर में ले जाने की कोशिश की
  5. VS 2010 की ताजा प्रति के साथ एक अलग कंप्यूटर पर समाधान लोड किया

मैंने अपना होमवर्क किया है और ऑनलाइन उत्तर की तलाश में बहुत लंबा समय बिताया है, किसी भी समाधान ने अभी तक मदद नहीं की है।

मैं और क्या कोशिश कर सकता हूं?


COM / ActiveX संदर्भों के लिए, वीएस 2012 कथन का उपयोग करने पर इस त्रुटि को सही दिखाएगा। जो काफी मजेदार है, क्योंकि यह कह रहा है कि हो सकता है कि आप एक उपयोग कथन खो रहे हों।

इसे हल करने के लिए: वास्तविक COM / ActiveX dll को पंजीकृत करें, भले ही यह पड़ोसी प्रोजेक्ट में है, और प्रोजेक्ट चैनल नहीं, COM चैनल के माध्यम से एक संदर्भ जोड़ें। यह ProjectName के बजाय Interop.ProjectName को एक संदर्भ के रूप में जोड़ देगा और यह इस अजीब बग को हल करता है।


उपयोग कथन एक नामस्थान को संदर्भित करता है, न कि एक परियोजना

सुनिश्चित करें कि आपके संदर्भित प्रोजेक्ट में उचित नामित नामस्थान है:

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

एमएसडीएन पर नेमस्पेस के बारे में और पढ़ें:


एक और चीज जो इस त्रुटि का कारण बन सकती है, इसमें NuGet संकुल हैं जो .NET के नए संस्करण के साथ बनाया गया है।

मूल त्रुटि:

frmTestPlanSelector.cs(11,7): error CS0246: The type or namespace name 'DatabaseManager' 
could not be found (are you missing a using directive or an assembly reference?) 

लॉग में आगे मुझे यह मिला:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3275: The primary reference "[redacted]\DatabaseManager\bin\Release\DatabaseManager.dll" could not be resolved because it has an indirect dependency on the assembly "System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" which was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".

समाधान NuGet संकुल को पुन: स्थापित करना था:

http://docs.nuget.org/docs/workflows/reinstalling-packages


ढांचे को बदलना

.NET Framework 4 Client Profile

मेरे लिए नौकरी की


बस एप्लिकेशन के लक्ष्य ढांचे को "नेट फ्रेमवर्क 4" में बदल दिया।

और त्रुटि गायब हो गई।

सौभाग्य; : डी


मेरी भी यही समस्या थी। लक्ष्य ढांचे मेरे लिए ठीक थे। फिर भी यह काम नहीं कर रहा था। मैंने वीएस -2010 एसपी 1 स्थापित किया, और प्रेजटेस्ट पर "पुनर्निर्माण" किया। फिर यह मेरे लिए काम करना शुरू कर दिया।


मेरे मामले में मैंने था:

संदर्भित डीएलएल: .NET 4.5

परियोजना: .NET 4.0

उपर्युक्त मिलान के कारण, 4.0 प्रोजेक्ट 4.5 डीएलएल के नामस्थान के अंदर नहीं देख सका। मैंने .NET 4.0 को लक्षित करने के लिए डीएलएल का पुन: संकलित किया और मैं ठीक था।


यदि आपकी प्रोजेक्ट (PrjTest) PrjTest नेमस्पेस के भीतर किसी भी सार्वजनिक प्रकार का खुलासा नहीं PrjTest है, तो यह उस त्रुटि का कारण बन जाएगी।

क्या परियोजना (PrjTest) में "PrjTest" नामस्थान में कोई वर्ग या प्रकार शामिल हैं जो सार्वजनिक हैं?


यह भी संभव है कि संदर्भित परियोजनाएं .NET 4.0 को लक्षित करती हैं, जबकि कंसोल ऐप प्रोजेक्ट .NET 4.0 क्लाइंट लाइब्रेरी को लक्षित करता है।

हालांकि यह इस विशेष मामले से संबंधित नहीं हो सकता है, मुझे लगता है कि कोई और जानकारी इस जानकारी को उपयोगी पा सकता है।


यह सवाल देखें।

यह एक क्लाइंट प्रोफाइलिंग मुद्दा था बाहर निकलता है।

PrjForm को "नेट फ्रेमवर्क 4 क्लाइंट प्रोफाइल" पर सेट किया गया था, मैंने इसे "नेट फ्रेमवर्क 4" में बदल दिया, और अब मेरे पास एक सफल निर्माण है।

सबको धन्यवाद! मुझे लगता है कि यह आंकड़े बताते हैं कि उस समय ऑनलाइन खोज करने के बाद, मुझे पोस्ट करने के बाद समाधान मिनट मिलते हैं, मुझे लगता है कि यह चाल पूछने के लिए सही सवाल जान रही है ..





using-directives