@ আন্ড্রেইউ উত্তরটি ইতিমধ্যে দিয়েছে এবং কীভাবে স্থানীয়ভাবে রানটাইম ত্রুটিগুলি পুনরুত্পাদন করতে পারে তার একটি যোগ করুন।
স্থানীয়ভাবে নয়, আজুরেতে মোতায়েন করার সময় আমি নীচের রানটাইম ত্রুটি পেয়েছি।
ফাইল বা সমাবেশ 'সিস্টেম. নেট.এইচটিপি, সংস্করণ = 4.2.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = b03f5f7f11d50a3a' বা এর অন্যতম নির্ভরতা লোড করা যায়নি। সিস্টেমটি নির্দিষ্ট করা ফাইলটি খুঁজে পাচ্ছে না। "," এক্সসেপশনটাইপ ":" সিস্টেম.আইও.ফিলনটফাউন্ডএক্সেপশন "," স্ট্যাকট্রেস ":" কোম্পানির.প্রজেক্ট.সোর্স.কম্পিয়ারআইটিগ্রেশনএপি সার্ভিস..সিটারে (উরি বেসএড্রেস)। R \ n কোম্পানিতে। .BackOffice.Web.Controllers.OrderController..ctor () সি তে: \ প্রকল্পসমূহ \ সংস্থা-প্রকল্প \ src \ Company.Project.BackOffice.Web \ কন্ট্রোলারস \ আদেশ \ আদেশকন্ট্রোলার.সি: ল্যাম্বদা_মিথডে 30 \ r \ n লাইন বন্ধ) System r \ n System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (HttpRequestMessage অনুরোধ, HTTPControllerDescriptor কন্ট্রোলার ডিজাইনার, টাইপ কন্ট্রোলার টাইপ) "} at সংস্কৃতি = নিরপেক্ষ, সর্বজনীনকি টোকেন = b03f5f7f11d50a3a 'বা এর অন্যতম নির্ভরতা। সিস্টেমটি নির্দিষ্ট করা ফাইলটি খুঁজে পাচ্ছে না। "," এক্সসেপশনটাইপ ":" System.IO.FileNotFoundException ", ". স্ট্যাকট্র্যাস": "Company.Project.Service.CompanyIntegrationApiService..ctor এ (উরি বেসএড্রেস)। R Company n কোম্পানিতে \ .BackOffice.Web.Controllers.OrderController..ctor () সি তে: \ প্রকল্পগুলি \ সংস্থা-প্রকল্প \ src \ Company.Project.BackOffice.Web \ কন্ট্রোলারস \ আদেশ \ আদেশকন্ট্রোলার.সি: ল্যাম্বদা_মিথডে 30 \ r \ n লাইন বন্ধ) System r \ n System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (HttpRequestMessage অনুরোধ, HTTPControllerDescriptor কন্ট্রোলার ডিজাইনার, টাইপ কন্ট্রোলার টাইপ) "} at সংস্কৃতি = নিরপেক্ষ, সর্বজনীনকি টোকেন = b03f5f7f11d50a3a 'বা এর অন্যতম নির্ভরতা। সিস্টেমটি নির্দিষ্ট করা ফাইলটি খুঁজে পাচ্ছে না। "," এক্সসেপশনটাইপ ":" System.IO.FileNotFoundException ", ". স্ট্যাকট্র্যাস": "Company.Project.Service.CompanyIntegrationApiService..ctor এ (উরি বেসএড্রেস)। R Company n কোম্পানিতে \ .BackOffice.Web.Controllers.OrderController..ctor () সি তে: \ প্রকল্পসমূহ \ সংস্থা-প্রকল্প \ src \ Company.Project.BackOffice.Web \ কন্ট্রোলারস \ আদেশ \ আদেশকন্ট্রোলার.সি: ল্যাম্বদা_মোথডে 30 \ r \ n লাইন বন্ধ) System r \ n System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (HttpRequestMessage অনুরোধ, HTTPControllerDescriptor কন্ট্রোলার ডিজাইনার, টাইপ কন্ট্রোলার টাইপ) "} at
আমি যখন অ্যাসেমব্লিগুলির দিকে তাকাতে শুরু করি তখন দেখতে পেলাম যে আমার ওয়েব প্রকল্প এবং পরিষেবা প্রকল্পের জন্য বিভিন্ন সংস্করণ লক্ষ্যবস্তু System.Net.Http
।
ওয়েব প্রকল্প:
পরিষেবা প্রকল্প:
এটি সহজেই মনে হয় যে এটি সংস্করণগুলিতে কোনও অমিলের কারণে ঘটেছিল তবে এখানে কীটিটি ত্রুটিটি দেখানো The system cannot find the file specified.
।
পথের সম্পত্তিটির দিকে তাকানো আমরা দেখতে পাচ্ছি যে ওয়েব প্রকল্পটি একটি নেট ফ্রেমওয়ার্ক সমাবেশকে লক্ষ্য করে যখন পরিষেবাটি ভিজ্যুয়াল স্টুডিও 2017 থেকে কোনও অ্যাসেমবিলিকে লক্ষ্য করে। সার্ভারটিতে ভিজুয়াল স্টুডিও 2017 ইনস্টলড নেই, তাই রানটাইম ত্রুটি ঘটবে।
ওয়েব পাথ:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Net.Http.dll
পরিষেবা পথ:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Http.dll
সমস্যাটি ঠিক করতে সেট Copy Local
করার মতো সাধারণ কিছু true
, তবে সব ক্ষেত্রেই নয়।
আপনার স্থানীয় মেশিনে ত্রুটিটি পুনরুত্পাদন করার জন্য, System.Net.Http.dll
ভিজ্যুয়াল স্টুডিও নির্দিষ্ট ফোল্ডার থেকে প্রয়োজনীয়টি সরিয়ে ফেলুন । এটি আপনাকে রানটাইম ত্রুটি এবং সম্ভবত কিছু বিল্ড ত্রুটি দেবে। এগুলি স্থির হওয়ার পরে সবকিছু কাজ করা উচিত, কমপক্ষে এটি আমার জন্য হয়েছিল।
আপনি যদি সংস্করণটি দেখে কোন অ্যাসেম্বলি ব্যবহার করেন তা চেকের System.Net.Http
মাধ্যমে ইনস্টল NuGet
করেছেন .csproj
। System.Net.Http 4.3.4
উদাহরণস্বরূপ নিম্নলিখিত সমাবেশ দেয়:
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
আপনি যদি জেনকিনস, টিমসিটি বা অ্যাপভিয়ারের মতো বিল্ড সার্ভার ব্যবহার করেন তবে রানটাইম অনুপস্থিত .dll
সেখানে উপস্থিত থাকতে পারে। এই ক্ষেত্রে এটি System.Net.Http এর নুগেট সংস্করণ ব্যবহার করতে বা .dll
স্থানীয়ভাবে নিখোঁজ মুছে ফেলাতে সহায়তা করতে পারে না । এই ত্রুটিটি সমাধান করার জন্য সংস্করণটি খুঁজে পাওয়া যায় নি যা সুনির্দিষ্ট নয় PublicKeyToken
। এর পরে Web.config
বা App.config
আপনার প্রকল্পের উপর নির্ভর করে একটি বাঁধাই পুনঃনির্দেশ তৈরি করুন। আমার ক্ষেত্রে আমি এর পরিবর্তে 4.0.0.0 ব্যবহার করতে চাই:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
সমস্যাটি সম্পর্কে একটি ভাল গিথুব থ্রেড:
https://github.com/dotnet/corefx/issues/22781