2016-01-05 4 views
11

मैं NuGet के माध्यम से प्रकाशन के लिए एक आधुनिक सामान्य उद्देश्य के तरीके में एक सार्वभौमिक विंडोज प्लेटफ़ॉर्म लाइब्रेरी कैसे पैकेज करूं? आइए मान लें कि मेरे पास सी # में लिखी गई एक भी एसीसीपीयू असेंबली है जो कुछ कोड और एक्सएएमएल उपयोगकर्ता नियंत्रण निर्यात करती है।सार्वभौमिक विंडोज प्लेटफ़ॉर्म को लक्षित करने वाली .NET लाइब्रेरी को कैसे पैकेज करें?

:

यह सवाल और जवाब है कि आधुनिक NuGet पैकेज संलेखन के विषय पर मेरी निष्कर्ष दस्तावेज़, NuGet 3. साथ किए गए बदलावों पर विशेष रूप से ध्यान केंद्रित कर तुम भी कुछ संबंधित प्रश्नों में रुचि हो सकती की एक श्रृंखला है

उत्तर

11

इस उत्तर principles used to package libraries targeting the .NET Framework पर बनाता है। निम्नलिखित को बेहतर ढंग से समझने के लिए पहले लिंक किए गए उत्तर को पढ़ें।

सबसे पहले आपको परियोजना निर्माण सेटिंग्स में "लाइब्रेरी लेआउट जेनरेट करें" चेकबॉक्स को देखना होगा। इसके बिना, आपके पुस्तकालय द्वारा निर्यात किए गए XAML उपयोगकर्ता नियंत्रणों का उपयोग करना संभव नहीं होगा। सभी बिल्ड कॉन्फ़िगरेशन और आर्किटेक्चर के लिए इस सेटिंग को लागू करना सुनिश्चित करें।

बुनियादी 3 संपत्ति के अलावा

(देखें का जवाब ऊपर लिंक), आप भी अपने निर्माण उत्पादन निर्देशिका से निम्न अतिरिक्त संपत्ति पैकेज की आवश्यकता होगी:

  • MyUwpLibrary.pri
  • MyUwpLibrary उपनिर्देशिका

इन अतिरिक्त संसाधनों को आपकी असेंबली द्वारा निर्यात किए गए एक्सएएमएल उपयोगकर्ता नियंत्रणों का उपयोग करने की आवश्यकता है। इन संपत्तियों को हमेशा शामिल करें, भले ही आपने अभी तक अपनी लाइब्रेरी से कोई एक्सएएमएल निर्यात नहीं किया है - आप इसे एक दिन कर सकते हैं और बाद में याद रखना मुश्किल होगा!

UWP पुस्तकालय प्रकाशित करने के लिए, आप निम्न संरचना के साथ एक NuGet पैकेज बनाने के लिए की जरूरत है:

\---lib 
    \---uap10.0 
     | MyUwpLibrary.dll 
     | MyUwpLibrary.pdb 
     | MyUwpLibrary.pri 
     | MyUwpLibrary.xml 
     | 
     \---MyUwpLibrary 
       HelloWorld.xaml 
       MyUwpLibrary.xr.xml 

आप .नेट फ्रेमवर्क पुस्तकालय प्रकाशन के साथ परिचित हैं, तो यह काफी परिचित और सीधा दिखना चाहिए। आप अपने nuspec फ़ाइल के लिए निम्न टेम्पलेट का उपयोग कर सकते हैं:

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata minClientVersion="3.2"> 
     <id>Example.MyUwpLibrary</id> 
     <version>1.0.0</version> 
     <authors>Firstname Lastname</authors> 
     <description>Example of a UWP library that exports a user control.</description> 
     <dependencies> 
      <dependency id="Newtonsoft.Json" version="8.0.1" /> 
     </dependencies> 
    </metadata> 
    <files> 
     <!-- The double wildcard will also grab all the resource files and the resource subdirectory. --> 
     <file src="..\bin\Release\MyUwpLibrary**" target="lib\uap10.0" /> 
    </files> 
</package> 

यह वास्तव में है! NuGet पैकेज बनाने से पहले रिलीज कॉन्फ़िगरेशन का उपयोग करके अपना समाधान बनाना याद रखें। अधिक जानकारी के लिए, उपरोक्त लिंक किए गए .NET Framework लाइब्रेरी को पैकेजिंग के बारे में उत्तर देखें।

एक नमूना पुस्तकालय और प्रासंगिक पैकेजिंग फ़ाइलें available on GitHub हैं। इस उत्तर से संबंधित समाधान SimpleUwpLibrary है।

+0

ईमानदारी से इसके लिए धन्यवाद! मैं अपनी खुद की यूडब्लूपी लाइब्रेरी बनाने में परेशानी में भाग रहा था और मुझे लगता है कि इसने मेरे लिए मुद्दों को हल किया है। –

+0

इसके अलावा: एक अलग टीएफएम जिसका उपयोग किया जा सकता है ('uap10.0' के बजाय)' netcore50' है। –

+0

MyUwpLibrary उपनिर्देशिका केवल तभी बनाई जाती है जब जेनरेट लाइब्रेरीलाइट ध्वज इसी निर्माण कॉन्फ़िगरेशन के लिए सत्य पर सेट हो। – halllo

संबंधित मुद्दे

 संबंधित मुद्दे