nuget 'প্যাকেজ' উপাদান সতর্কতা হিসাবে ঘোষণা করা হয় না


142

শোস্টোপার নয় তবে কোনও প্রকল্পে নুগেট ব্যবহার করার সময় এটি এই আকারের সাহায্যে একটি প্যাকেজ.কনফিগ ফাইল তৈরি করে

<?xml version="1.0" encoding="utf-8"?>
<packages>
   ... your packages
</packages> 

এটি ভিএস-এ একটি সতর্কতা দেয়

The 'packages' element is not declared.

আমার অনুমান xML ঘোষণার সাথে সমস্যার উত্স কিছু হয়েছে।

এছাড়াও আমি মনে করি যে ডিফল্ট সংজ্ঞা প্যাকেজ সতর্কতা নিক্ষেপ করা উচিত নয়।

কেউ কি জানেন যে আমার কী পরিবর্তন করা উচিত তাই আমি এই সতর্কতাটি পাই না? (উদাহরণস্বরূপ, ফাইলটি খোলার সময়ও আমি এটি দেখতে পাচ্ছি, এটি নির্দিষ্ট সিএ নিয়মের সাথে ক্রমাগত সতর্কতা হিসাবে দেখায়))


3
আমি এই বিষয়ের জন্য [এই সমাধান] [1] খুঁজে পেয়েছি, যা আমি আরও ভাল বলে মনে করি। [1]: স্ট্যাকওভারফ্লো.com
মারিও লোপেজ

1
টিবিএইচ এর আসল সমাধানটি হ'ল সরকারী স্কিমা যুক্ত করা ... আমার নীচের উত্তরটি দেখুন
প্লিজ

উত্তর:


96

এই সতর্কতা থেকে মুক্তি পেতে আপনি সর্বদা 'প্যাকেজস কনফিগ' এর জন্য সহজ এক্সএসডি স্কিমা তৈরি করতে পারেন। এটি করতে, "প্যাকেজ.এক্সএসডি" নামক ফাইলটি তৈরি করুন:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
      targetNamespace="urn:packages" xmlns="urn:packages">
  <xs:element name="packages">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="package" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:string" use="required" />
            <xs:attribute name="version" type="xs:string" use="required" />
            <xs:attribute name="targetFramework" type="xs:string" use="optional" />
            <xs:attribute name="allowedVersions" type="xs:string" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

এই ফাইলের অবস্থান (দুটি বিকল্প)

  • 'প্যাকেজস.কনফিগ' ফাইল হিসাবে একই ফোল্ডারে,
  • আপনি যদি packages.xsdএকাধিক প্রকল্প জুড়ে ভাগ করতে চান তবে এটিকে ভিজ্যুয়াল স্টুডিও স্কিমাস ফোল্ডারে সরান (পথটি কিছুটা আলাদা হতে পারে, এটি আমার D:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemasজন্য)।

তারপরে, ফাইলে <packages>ট্যাগ সম্পাদনা packages.configকরুন ( xmlnsবৈশিষ্ট্য যুক্ত করুন):

<packages xmlns="urn:packages">

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


1
আপনাকে এক্সএসএল-এর দ্বিতীয় লাইনটি সংশোধন করতে হবে না: <xs: স্কিমা xmlns: xs = " w3.org/2001/XMLSchema " টার্গেটনামস্পেস = "urn: প্যাকেজ" xMLns = "urn: প্যাকেজ">
উরি

1
আপনি কি জানেন যে ভিজ্যুয়াল স্টুডিও কেন সেই এক্সএসডি ফাইল তৈরি করছে না?
অ্যান্ডার্স লিন্ডন

1
targetFrameworkআপনি এক্সএমএল স্কিমা ফাইলটিতে অ্যাট্রিবিউট মিস করেছেন । আমি ত্রুটি targetFramework attribute is not defined
পাচ্ছি

2
আমি দেখতে পেয়েছি যে সত্তা কাঠামোর সাথে আপনার সমাধানটি ব্যবহার করে, নুগেট কনসোলটি আমার প্যাকেজ.কনফিগটিকে সঠিকভাবে পার্স করতে পারে না এবং আমাকে বলে চলেছিল যে আমার প্রকল্পে এনিটিটি ফ্রেমওয়ার্ক প্যাকেজ ইনস্টল করা হয়নি। আমি VG2013 চূড়ান্ত আপডেট 2 এ নুগেট 2.8.50313.46 সহ EF 6.1.0 ব্যবহার করছি
মিস্টারফ্রব

7
এই সমাধানটি vs2012 / নুগেটে হারিয়ে যাওয়া প্যাকেজ বৈশিষ্ট্যগুলির স্বয়ংক্রিয় ইনস্টলেশনটি ভেঙে দেয়। সতর্কবার্তাটি গেছে, তবে এটি খুঁজে পেতে আমার কয়েক ঘন্টা ব্যয় হয়েছিল, কেন vs2012 হারিয়ে যাওয়া প্যাকেজগুলি ইনস্টল করে না। সুতরাং আরও ভাল সমাধান ( স্ট্যাকওভারফ্লো / প্রশ্নগুলি / উত্তর ২৩৩৩৪৩ / এ উত্তর ) মেনু XML- এর মাধ্যমে একটি স্কিমা তৈরি করা -> স্কিমা তৈরি করুন (বনাম ২০১২ এটি স্বয়ংক্রিয়ভাবে ব্যবহৃত স্কিমার তালিকায় যুক্ত করবে) - পরিবর্তন করার দরকার নেই। কনফিগার করুন, অন্যান্য বৈশিষ্ট্যগুলির বিরতি নেই
আউটফাইমড

188

আপনি ফাইলটি কেবল তখন খোলা থাকবে। আপনি যখন ভিজ্যুয়াল স্টুডিওতে ফাইলটি বন্ধ করবেন তখন সতর্কতাগুলি চলে যায়

http://nuget.codeplex.com/discussions/261638


8
হা, সমস্যা উপেক্ষা করে এটিকে দূরে সরিয়ে দেয়: ডি। কিন্তু আপনি যা দেখতে পাচ্ছেন না তা কি আপনাকে আঘাত করতে পারে?
JSideris

5
ডান @ গ্রেগরিটি আমাদের এড়ানো উচিত .. এই সতর্কতার অন্য প্রভাব রয়েছে। এটি উত্পাদিত হয়েছে nugetএবং nugetএই ফাইলটি কীভাবে খুব ভালভাবে ব্যবহার করতে হয় তা জানে।
শাশওয়াত

হ্যাঁ, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। কাজের পরে আমাকে একটি উইগ পরতে হয় তার একটি কারণে উপরেরটি একটি।
নিলহিগলে

@neilhighley ধন্যবাদ ছেলেরা। বিষয়টি বেশ মনে রাখবেন না তবে খুশী হবেন যে আমি সাহায্য করতে পারি। উচ্চহাস্য
Tzvi গ্রেগরি Kaidanov

ধন্যবাদ রায়ানরোডেমোয়ার বিষয়টি বেশ মনে রাখবেন না তবে খুশী হবেন যে আমি সাহায্য করতে পারি। উচ্চহাস্য
Tzvi গ্রেগরি Kaidanov

116

প্রকৃতপক্ষে এর সঠিক উত্তরটি হ'ল আপনার ডকুমেন্টে কেবলমাত্র স্কিমা যুক্ত করা

<packages xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">

...এবং তুমি করে ফেলেছ :)

যদি এক্সএসডি ইতিমধ্যে ক্যাশেড এবং অনুপলব্ধ না থাকে তবে আপনি এটি নিউগেট কনসোল থেকে নিম্নলিখিত হিসাবে যুক্ত করতে পারেন

Install-Package NuGet.Manifest.Schema -Version 2.0.0

এটি হয়ে গেলে, নীচের মন্তব্যে যেমন উল্লেখ করা হয়েছে, আপনি এটি আপনার বর্তমান ফোল্ডার থেকে সরকারী স্কিমা ফোল্ডারে সন্ধান করতে পারেন

%VisualStudioPath%\Xml\Schemas

আমি কীভাবে এই ইউআরএল যেতে পারি না?
অ্যান্ড্রুব

4
আপনি এই কথাটি ঠিক বলেছেন যে প্রশ্নে থাকা এক্সএসডি বর্তমানে অ্যাক্সেসযোগ্য নয়, যা বলেছিল যে, তাদের ডাব্লু 3 সি সংজ্ঞা অনুসারে এটি বিভ্রান্তিকর হতে পারে, এক্সএমএনএলএস (নেমস্পেস) ঘোষণাটি ইউআরআই আকারে স্ট্রিং ছাড়া আর কিছুই নয়, এবং এটি প্রয়োজন হয় না বা পরামর্শ দেওয়া হয় না যে সেখানে একটি সংস্থান আসলে পাওয়া যায় ( en.wikedia.org/wiki/XML_namespace )
স্টিফান জেড ক্যামিলারি

1
হ্যাঁ, খুব অবশ্যই এটি এক্সএসডি নিজেই। ভিজ্যুয়াল স্টুডিও প্রকৃতপক্ষে স্কিমাটিকে বৈধতা দেয় না, এটি লাইব্রেরি / এসেম্বলি যা এক্সএমএল ডকুমেন্ট গ্রহণ করছে যা যাচাইকরণ করবে V কেবল ভিএসকে এই তথ্যের প্রয়োজন কারণ ইন্টেলিজেন্স সরবরাহ করা। যখন রিসোর্সটি খুঁজে পাওয়া যায় না, তখন ভিএস এক্সএসডি-র প্রাক-ক্যাশেড উদাহরণটি ব্যবহার করছে, যা% VsInstallDir% \ xML \ স্কিমাসে পাওয়া যাবে
স্টেফান জেড ক্যামিলারি

4
সুতরাং এখন আমি কেবল একটি সতর্কতা বার্তার পরিবর্তে ১৩ টি তথ্য বার্তা ("স্কিমা তথ্য সন্ধান করতে পারি না ...") পাচ্ছি ... এক ধাপ পিছনে যাওয়ার মত ধরণের অনুভূতি :-)
রিগার্ড স্টেইন

1
লক্ষণীয় যে সাম্প্রতিক আমি নুগেটে স্ক্রাইভ করে সেই নেমস্পেসগুলি যুক্ত করার বিষয়ে আমার সমস্যা হয়েছিল। আমি দুর্ভাগ্যজনক যেহেতু আমি সতর্কতা না রাখাই পছন্দ করি।
meh-uk

7

উত্তরের কোনওটিই আপনার সমস্যার স্থায়ীভাবে সমাধান করবে না। আপনি যদি এক্সএসডি যুক্ত করার পথে যান (এক্সএমএল মেনু থেকে, "স্কিমা তৈরি করুন" নির্বাচন করুন), আপনি প্যাকেজ ম্যানেজারে সমস্যা হবেন কারণ আপনি যখন নতুন প্যাকেজ যুক্ত করবেন তখন এটি আপনার প্যাকেজ সিঙ্কফাইগ ফাইল পরিষ্কার করবে।

আপনি যখন ফাইলটি ব্যবহার করবেন না তখনই সর্বোত্তম সমাধানটি কেবল ফাইলটি বন্ধ করে উপেক্ষা করা হবে।


+1 টি; শুধু সচেতন যে হতে এই কাজ করে (এবং প্যাকেজ ম্যানেজার ভঙ্গ হবে না)।
rsenna

5

সমস্যাটি হল, আপনার জন্য একটি এক্সএসডি স্কিমা প্রয়োজন packages.config

এভাবে আপনি স্কেমা তৈরি করতে পারেন ( আমি এটি এখানে পেয়েছি) :

আপনার কনফিগারেশন ফাইলটি খুলুন -> এক্সএমএল -> স্কিমা তৈরি করুন

এখানে চিত্র বর্ণনা লিখুন

এটি packages.xsdআপনার জন্য একটি তৈরি করবে এবং এটি ভিজ্যুয়াল স্টুডিওতে খুলবে:

এখানে চিত্র বর্ণনা লিখুন

আমার ক্ষেত্রে, packages.xsdএই পথের নীচে তৈরি করা হয়েছিল:

সি: \ ব্যবহারকারী \ MyUserName \ AppData \ স্থানীয় \ টেম্প

এখন আমি packages.xsdকোনও টেম্প ফোল্ডারটি থেকে রেফারেন্সটি বলতে চাই না, তবে আমি চাই এটি আমার সমাধানে যুক্ত হয়ে উত্স নিয়ন্ত্রণে যুক্ত করা উচিত, যাতে অন্যান্য ব্যবহারকারীরা তা পেতে পারে ... তাই আমি এটি অনুলিপি packages.xsdকরে আমার সলিউশন ফোল্ডারে আটকালাম। তারপরে আমি আমার সমাধানটিতে ফাইলটি যুক্ত করেছি:

1. packages.xsdআপনার সমাধান হিসাবে একই ফোল্ডারে অনুলিপি করুন

২. ভিএস থেকে, সমাধানটিতে ডান ক্লিক করুন -> যুক্ত করুন -> বিদ্যমান আইটেম ... এবং তারপরে যুক্ত করুনpackages.xsd

এখানে চিত্র বর্ণনা লিখুন

সুতরাং, এখন আমরা packages.xsdএটি তৈরি করে সমাধানে যুক্ত করেছি। আমাদের যা করতে হবে তা হ'ল এই স্কিমাটি ব্যবহার করতে কনফিগারেশন ফাইলটি জানানো।

কনফিগারেশন ফাইলটি খুলুন, তারপরে উপরের মেনু থেকে নির্বাচন করুন:

এক্সএমএল -> স্কিমাস ...

আপনার যোগ করুন packages.xsdএবং এই স্কিমাটি ব্যবহার করুন (নীচে দেখুন) নির্বাচন করুন

এখানে চিত্র বর্ণনা লিখুন


4

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


আপনি প্যাকেজ ইনস্টল করতে নুগেট ব্যবহার করেন তা বিবেচ্য নয়। একই 'প্যাকেজস কোডফাইগ' ফাইলটি নির্মিত এবং এটি এখনও সেই সংকলক সতর্কতা তৈরি করে।
অধ্যাপক

0

এটি কাজ করে এবং একটি নতুন প্যাকেজ যুক্ত করার পরেও রয়েছে:

<প্যাকেজগুলি> উপাদানের উপরে নিম্নলিখিতটি যুক্ত করুন!

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE packages [
  <!ELEMENT packages (package*)>
  <!ELEMENT package EMPTY>
  <!ATTLIST package
  id CDATA #REQUIRED
  version CDATA #REQUIRED
  targetFramework CDATA #REQUIRED
  developmentDependency CDATA #IMPLIED>
]>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.