वर्तमान में मेरे पास एक ASPNet.Core वेब एप्लिकेशन है जिसमें 2 नगेट पैकेज हैं जो एक ही dll के विभिन्न संस्करणों का संदर्भ देते हैं। वेब प्रोजेक्ट ठीक काम करता है, लेकिन जब मैं Unit Testing प्रोजेक्ट में Web प्रोजेक्ट में एक संदर्भ जोड़ता हूं, तो मुझे यह संकलन त्रुटि मिलती है। कुछ इन डीएलएल मतभेदों को स्पष्ट रूप से हल कर रहा है क्योंकि वेब प्रोजेक्ट बिना किसी समस्या के संकलित करता है। यह केवल तभी होता है जब मैं परीक्षण जोड़ने के लिए वेब प्रोजेक्ट का संदर्भ जोड़ता हूं, क्या नीचे संकलन त्रुटि होती है, और केवल इकाई परीक्षण प्रोजेक्ट में होती है।

असेंबली 'KII.Web' पहचान के साथ 'केआईआई.वेब, संस्करण=1.0.0.0, संस्कृति=तटस्थ, PublicKeyToken=null' 'Microsoft.Extensions.Options' का उपयोग करता है, संस्करण=2.2.0.0, संस्कृति=तटस्थ, PublicKeyToken=adb9793829ddae60' जिसमें संदर्भित असेंबली की तुलना में उच्च संस्करण है पहचान के साथ 'Microsoft.Extensions.Options' 'Microsoft.Extensions.Options, संस्करण = 2.1.1.0, संस्कृति = तटस्थ, PublicKeyToken=adb9793829ddae60' KII.UnitTests
C:\Projects\kii\web\src\Tests\KII.UnitTests\Controllers\HomeControllerTest.cs

इसके अतिरिक्त, मेरे पास यूनिट टेस्ट प्रोजेक्ट में यह बिल्ड त्रुटि भी है।

असेंबली 'KII.Web' 'Microsoft.AspNetCore.Mvc.ViewFeatures, संस्करण = 2.1.1.0' का उपयोग करता है, जिसमें 'Microsoft.AspNetCore.Mvc.ViewFeatures' की पहचान के साथ संदर्भित असेंबली 'Microsoft.AspNetCore.Mvc.ViewFeatures' की तुलना में एक उच्च संस्करण है, संस्करण=1.0.3.0

अनिवार्य रूप से वेब प्रोजेक्ट में यह है

  • Microsoft.AspNetCore.App 2.2.0 का संदर्भ Microsoft.Extensions.Options 2.2.0 है
  • KenticoCloud.Delivery 10.0.1 का संदर्भ Microsoft.Extensions.Options 2.1.1 है

जिन चीजों को मैंने आजमाया है

  • स्वच्छ/पुनर्निर्माण
  • मैन्युअल रूप से बिन निर्देशिका हटाएं
  • बाइंडिंग रीडायरेक्ट जोड़ें इकाई परीक्षण और वेब परियोजनाओं दोनों में app.configs में
  • KenticoCloud.Delivery को 11.0.0-beta1 पर अपडेट करें

चूंकि यह .net कोर है, इसलिए कोई hintpaths नहीं है जिसे मैं web.config में बदल सकूं। मुझे नहीं लगता कि पुराने संस्करण के लिए जीएसी की जांच/अपडेट करना काम करेगा क्योंकि नेट कोर जीएसी का उपयोग नहीं करता है। चूंकि विचाराधीन dll nuget संकुल की उप-निर्भरता है, इसलिए मैं nuget संकुल को हल करने के लिए अद्यतन नहीं कर सकता।

इसी तरह का SO प्रश्न

4
w00ngy 12 सितंबर 2019, 17:05

1 उत्तर

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

इसका समाधान वेब प्रोजेक्ट में साझा पैकेज निर्भरता Microsoft.AspNetCore.Mvc.ViewFeatures version 2.2.0 में से एक के नवीनतम संस्करण को सीधे स्थापित करना था। इस पैकेज पर प्रत्यक्ष निर्भरता जोड़ने से इकाई परीक्षण परियोजना को इसकी निर्भरता को सही ढंग से हल करने की अनुमति मिलती है।

इस पैकेज निर्भरता को KII.Web.csproj में जोड़ा गया है

<PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />
0
w00ngy 16 सितंबर 2019, 05:33