โครงการนี้เป็น ASP.NET MVC Web App ที่กำหนดเป้าหมายไปที่. NET Framework 4.6.1 การ
ทันใดนั้น (แพ็คเกจ NuGet บางตัวได้รับการอัพเกรด) ฉันเริ่มได้รับข้อผิดพลาดต่อไปนี้ระหว่างรันไทม์:
CS0012: ประเภท 'System.Object' ถูกกำหนดในแอสเซมบลีที่ไม่ได้อ้างอิง คุณต้องเพิ่มการอ้างอิงถึงแอสเซมบลี 'netstandard, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = cc7b13ffcd2ddd51'
ในมุมมองหลักของฉันIndex.cshtml
ในบรรทัดที่ฉันใช้ประโยชน์จาก@Html.ActionLink
ฉันมี. NET Core SDK 2.0 และ. NET Framework 4.7.1 ติดตั้งอยู่ในเครื่องของฉัน แต่ฉันไม่ต้องการรวมข้อมูลอ้างอิงเข้าไป นี่คือเว็บแอป. NET Framework เท่านั้นซึ่งโฮสต์บน Windows IIS โดยที่กรอบงานที่ติดตั้งคือ 4.6.1 ไม่มี NET Core ติดตั้งในเซิร์ฟเวอร์
เหตุใดจึงขอให้เพิ่มการอ้างอิงnetstandard
? ฉันจะแก้ไขได้อย่างไรโดยไม่ต้องอ้างอิงnetstandard
แต่เป็น Windows .NET Framework 4.6.1 แบบเต็ม
ฉันได้ตรวจสอบการกระทำก่อนหน้านี้ซึ่งใช้งานได้ดีและฉันยังคงได้รับข้อผิดพลาดนี้ ดังนั้นจึงไม่เกี่ยวข้องกับแพ็คเกจ NuGet ที่กำลังอัปเกรด ดูเหมือนจะเป็นบางอย่างในเครื่อง dev ในพื้นที่ของฉัน
หากเผยแพร่แอปไปยังไดเร็กทอรีและเรียกใช้ด้วย IIS จะใช้งานได้
packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.5.0.2" targetFramework="net46" />
<package id="BundleTransformer.Core" version="1.9.69" targetFramework="net46" />
<package id="BundleTransformer.Handlebars" version="1.9.73" targetFramework="net46" />
<package id="BundleTransformer.Less" version="1.9.69" targetFramework="net46" />
<package id="BundleTransformer.Yui" version="1.9.52" targetFramework="net46" />
<package id="Dapper" version="1.42" targetFramework="net46" />
<package id="EcmaScript.Net" version="1.0.1.0" targetFramework="net46" />
<package id="EntityFramework" version="6.0.0" targetFramework="net46" />
<package id="Glimpse" version="1.8.6" targetFramework="net46" />
<package id="Glimpse.AspNet" version="1.9.2" targetFramework="net46" />
<package id="Glimpse.Mvc5" version="1.5.3" targetFramework="net46" />
<package id="JavaScriptEngineSwitcher.Core" version="1.2.4" targetFramework="net46" />
<package id="JavaScriptEngineSwitcher.V8" version="1.3.0" targetFramework="net46" />
<package id="jQuery" version="2.1.3" targetFramework="net46" />
<package id="jQuery.Validation" version="1.13.1" targetFramework="net46" />
<package id="LowercaseDashedRoute" version="1.0.14" targetFramework="net46" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.SqlServer.Compact" version="4.0.8876.1" targetFramework="net46" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Moment.js" version="2.10.2" targetFramework="net46" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net46" />
<package id="NWebsec" version="5.1.1" targetFramework="net46" />
<package id="NWebsec.Core" version="2.1.0" targetFramework="net46" />
<package id="NWebsec.Mvc" version="5.1.1" targetFramework="net46" />
<package id="Owin" version="1.0" targetFramework="net46" />
<package id="Respond" version="1.4.2" targetFramework="net46" />
<package id="Sendgrid" version="6.3.0" targetFramework="net46" />
<package id="SendGrid.SmtpApi" version="1.3.1" targetFramework="net46" />
<package id="Serilog" version="2.6.0" targetFramework="net46" />
<package id="Serilog.Enrichers.Environment" version="2.1.2" targetFramework="net46" />
<package id="Serilog.Sinks.File" version="3.2.0" targetFramework="net46" />
<package id="Serilog.Sinks.RollingFile" version="3.3.0" targetFramework="net46" />
<package id="Serilog.Sinks.Sentry" version="2.1.4" targetFramework="net46" />
<package id="SerilogWeb.Classic" version="2.1.17" targetFramework="net46" />
<package id="SharpRaven" version="2.2.0" targetFramework="net46" />
<package id="System.Data.SQLite" version="1.0.108.0" targetFramework="net46" />
<package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" />
<package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" />
<package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" />
<package id="Twitter.Bootstrap.Less" version="3.3.4" targetFramework="net46" />
<package id="WebActivatorEx" version="2.0.6" targetFramework="net46" />
<package id="WebGrease" version="1.6.0" targetFramework="net46" />
<package id="YUICompressor.NET" version="2.7.0.0" targetFramework="net46" />
</packages>
เมื่อเผยแพร่แอปโดยใช้ VS2017 ไปยังระบบไฟล์ฉันได้รับคำเตือนต่อไปนี้ในผลลัพธ์:
แอสเซมบลีต่อไปนี้มีการอ้างอิงบนเวอร์ชันของ. NET Framework ที่สูงกว่าเป้าหมายและอาจโหลดไม่ถูกต้องระหว่างรันไทม์ทำให้เกิดความล้มเหลว: netstandard, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = cc7b13ffcd2ddd51 การอ้างอิง ได้แก่ : System.Transactions, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 คุณควรตรวจสอบให้แน่ใจว่าแอสเซมบลีที่อ้างอิงนั้นถูกต้องสำหรับเฟรมเวิร์กเป้าหมายหรือตรวจสอบให้แน่ใจว่าเฟรมเวิร์กเป้าหมายที่คุณกำหนดแอดเดรสนั้นเป็นของแอสเซมบลีที่ขึ้นต่อกัน
แต่ฉันไม่พบอะไรSystem.Transactions
เลย ฉันจะค้นหาสิ่งที่อ้างถึงได้อย่างไร
System.Data.SQLite.Core
แพคเกจจะขึ้นอยู่กับ .NET หลัก (หรือ .NET มาตรฐานผมไม่ได้ไปหาแหล่งที่มาหรือเอกสาร) ดูข้อความแสดงข้อผิดพลาดที่ท้ายสุดของไฟล์โครงการของคุณ
packages\System.Data.SQLite.Core.1.0.108.0\lib
ไดเร็กทอรีและมีโฟลเดอร์สำหรับ. NET Framework แต่ละเวอร์ชันรวมถึง 4.6 ซึ่งเป็นสิ่งที่ฉันใช้ ฉันไม่คิดว่านั่นเป็นปัญหาที่นี่