【问题标题】:Using DbContext (net core) in Windows Service via external dll通过外部 dll 在 Windows 服务中使用 DbContext(网络核心)
【发布时间】:2018-01-11 16:36:40
【问题描述】:

Visual Studio 中的 2 个解决方案:

1 个解决方案,2 个项目:

  • 图书馆
  • 网站 ASP.NETCORE (api restful)

1 个项目的 1 个解决方案:

  • Windows 服务

我已经添加了 dll 和 Microsoft.AspNetCore + Microsoft.EntityFrameworkCore

在我的 Windows 服务中:

        var optionsBuilder = new DbContextOptionsBuilder<FidelityContext>();
        optionsBuilder.UseSqlServer("Server=XXXXX;Database=XXXXXX;User Id=XXXXX;Password=XXXXX;MultipleActiveResultSets=True");

        using (var context = new FidelityContext(optionsBuilder.Options))
        {
            // do stuff
        }

导致此错误:

日志:

  • $exception {"Impossible decharger le fichier ou l'assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses 依赖。 La definition trouvée du manifeste de l'assembly ne 对应 pas à la référence de l'assembly。 (HRESULT 例外: 0x80131040)":"System.Runtime,版本=4.2.0.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a"}
    System.IO.FileLoadException

=== Informations d'état de liaison préalable ===

JRN:DisplayName = System.Runtime,版本=4.2.0.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a

(完全指定)

JRN : Appbase = file:///C:/Users/Xavier/documents/visual studio 2017/Projects/SocietyServices/SocietyServices/bin/Debug/

JRN : PrivatePath 初始 = NULL

大会上诉人:核心,版本=1.0.0.0,文化=中性, PublicKeyToken=null。

===

JRN : cette liaison démarre dans le contexte dechargement de default.

JRN:应用程序配置的利用率: C:\Users\Xavier\documents\visual studio 2017\Projects\SocietyServices\SocietyServices\bin\Debug\SocietyServices.exe.Config

JRN : 利用 du fichier de configuration d'hôte :

JRN : 利用 du fichier de configuration de l'ordinateur à partir 德 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

JRN : 参考后策略 : System.Runtime, Version=4.2.0.0, 文化=中立,PublicKeyToken=b03f5f7f11d50a3a

JRN : 暂定的 téléchargement de la nouvelle URL file:///C:/Users/Xavier/documents/visual studio 2017/Projects/SocietyServices/SocietyServices/bin/Debug/System.Runtime.DLL。

AVT : la comparaison du nom de l'assembly a entraîné l'incompatibilité : 次要版本

ERR : 不可能的 determiner l'installation de l'assembly (hr = 0x80131040)。检测终端。

Impossible de Charger le fichier ou l'assembly 'System.Runtime, 版本=4.2.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a' ou une de ses 依赖。 La definition trouvée du manifeste de l'assembly ne 对应 pas à la référence de l'assembly。 (例外 de HRESULT : 0x80131040)

à System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)

à System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()

à System.Reflection.RuntimeMethodInfo.GetParametersNoCopy()

à System.Reflection.RuntimePropertyInfo.GetIndexParametersNoCopy()

à System.Reflection.RuntimePropertyInfo.GetIndexParameters()

à Microsoft.EntityFrameworkCore.Internal.DbSetFinder.c.b__2_0(PropertyInfo p)

à System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()

à System.Linq.Buffer1..ctor(IEnumerable1 源)

à System.Linq.OrderedEnumerable`1.d__1.MoveNext()

à System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()

à System.Linq.Buffer1..ctor(IEnumerable1 来源)

à System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

à Microsoft.EntityFrameworkCore.Internal.DbSetFinder.FindSets(Type 上下文类型)

à System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)

à Microsoft.EntityFrameworkCore.Internal.DbSetFinder.FindSets(DbContext 上下文)

à Microsoft.EntityFrameworkCore.Internal.DbSetInitializer.InitializeSets(DbContext 上下文)

à Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions 选项)

à Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext`3..ctor(DbContextOptions 选项)

à API360Plus.Model.Data.FidelityContext..ctor(DbContextOptions`1 选项)dans C:\Users\Xavier\Source\Workspaces\API3605\Main\Core\Model\Data\FidelityContext.cs:ligne 64

à SocietyServices.Society_GenerationAnniversaire.Traitement() dans C:\Users\Xavier\documents\visual studio 2017\Projects\SocietyServices\SocietyServices\Society_GenerationAnniversaire.cs:ligne 90

à SocietyServices.Society_GenerationAnniversaire.T1_Elapsed(Object 发件人,EventArgs e) dans C:\Users\Xavier\documents\visual studio 2017\Projects\SocietyServices\SocietyServices\Society_GenerationAnniversaire.cs:ligne 152

à System.Timers.Timer.MyTimerCallback(对象状态)

【问题讨论】:

    标签: c# asp.net .net entity-framework windows-services


    【解决方案1】:

    我有我的答案,这是因为我的库在 net core 中,而不是在 net 标准中。 现在它的工作完美!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      相关资源
      最近更新 更多