मेरे पास 3 परियोजनाएं हैं:

  1. .NETStandard 2.0 में एसडीके और मैंने स्थापित किया System.IdentityModel.Tokens.Jwt (5.4.0) नगेट पैकेज।
  2. .NETCore 2.1 में ASP.NET कोर एपीआई
  3. ASP.NET API .NETFramework 4.7.2 . में

और संदर्भित एसडीके दोनों एपीआई में, मुझे .NETCore एपीआई में कोई समस्या नहीं है लेकिन मुझे नेटफ्रेमवर्क एपीआई में एक त्रुटि मिली है:

Could not load file or assembly 'Microsoft.IdentityModel.Tokens, Version=5.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

यह .NETFramework और .NET कोर दोनों में .NETStandard का समर्थन करने वाला नहीं है? मुझे क्या याद आया?

0
Saeid 22 अप्रैल 2019, 21:00

1 उत्तर

सबसे बढ़िया उत्तर

ऊपर टिप्पणी बढ़ा दी।

कई NuGet पैकेज में अलग-अलग लक्ष्य प्लेटफॉर्म के लिए अलग-अलग असेंबली होती हैं (उदाहरण के लिए netxx और netstandardxx), और वे असेंबली विनिमेय नहीं हैं।

इसलिए, जब परियोजना संरचना नीचे दी गई है, तो आपने एक समस्या का सामना किया है,

Net472 प्रोजेक्ट - निर्भर करता है -> netstandard20 प्रोजेक्ट - पर निर्भर करता है -> System.IdentityModel.Tokens.Jwt (netstandard20)

क्योंकि इस तरह, net472 प्रोजेक्ट NuGet पैकेज की netstandard20 कॉपी का उपभोग करता है, जो त्रुटि को ट्रिगर करता है।

इसे हल करने के कई तरीके हैं, और आपका समाधान उनमें से सिर्फ एक है, जो नेटस्टैंडर्ड 20 प्रोजेक्ट को मल्टी-टारगेटिंग (नेटस्टैंडर्ड 20 और नेट 461) के रूप में संशोधित करता है। यह NuGet को net472 प्रोजेक्ट के लिए उचित असेंबली की सेवा करने के लिए कहता है और फिर सब कुछ काम करना शुरू कर देता है।

1
Lex Li 23 अप्रैल 2019, 03:54