ลองทำ Automate Test แล้วเอา json มา mock ข้อมูล พอ execute จริง Error ครับ
Message: Test method ds.Invest.Enquiry.Service.Impl.MSTest.Report.RealizedGLFromARAPDSServiceTests.T326715_ProcessRealizedGLFromARAP threw exception: System.IO.FileLoadException: Could not load file or assembly 'System.ComponentModel.Annotations, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
ตรวจสอบ และแก้ไข
- ตรวจสอบว่า Code Reference DLL เวอรชันเดียวกัน หรือ ไม่
- ตรวจสอบว่า Solution และ Library ต่างๆที่ Reference มาใช้ System.ComponentModel.Annotations ส่วนตัวเคยเจอว่า Project Library ใช้ 5.0.0 และปรากฏว่า Main Project มา Reference 4.5.0 ตอนใช้จริงมันฟ้องหา 5.0.0
- การแก้ไข ปรับ Reference ให้เท่ากัน
- app.config / web.config มี Lock Version DLL
- ตรวจสอบว่ามีการ Lock Version ของ Dependency ไหม แบบนี้
<dependentAssembly> <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.7.0.0" newVersion="5.0.0.0" /> </dependentAssembly>
- การแก้ไข ถ้าไม่จำเป็นต้อง Lock ให้ลบออกไปครับ
- ลองแก้แล้วไม่ได้จริงๆ
- แก้ไขไฟล์ .csproj เพิ่ม 2 บรรทัดนี้ลงไปครับ
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.