【问题标题】:Windows Service (.NET) Could not load file or assemblyWindows 服务 (.NET) 无法加载文件或程序集
【发布时间】:2020-12-02 13:19:49
【问题描述】:

启动windows服务时出现错误:

服务无法启动。 System.IO.FileNotFoundException: 无法加载文件或程序集“Quartz,版本 = 3.1.0.0,文化 = 中立的,PublicKeyToken = f6b8c98a402cc8a4" 或其中一个 依赖关系。找不到指定的文件。文件名:'石英, 版本 = 3.1.0.0,文化 = 中立,PublicKeyToken = f6b8c98a402cc8a4' 在 Vlantify.WinServ.VlantifyService.OnStart (字符串 [] 参数)在 System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(对象 州)

如果您删除此 nuget 包,也会出现错误,只有在其他包(例如 serilog)时才会出现错误。

当应用程序的 Presenatation 层从 MVC 重做到 Windows 服务时开始出现此错误,我注意到 MVC 可以正常使用这些包。

所需库的文件位于bin文件夹中,我不明白为什么会出现错误并写道找不到指定的文件,我已经尝试重新安装nuget包。

如果有人知道可能是什么问题,请帮忙。

【问题讨论】:

  • 你尝试过发布这个项目吗?
  • 你修好了吗?
  • 没有,但我使用的是发行版
  • 不,还没有修复

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


【解决方案1】:

我几乎可以肯定它与 packages 文件夹相对于您的旧/新项目的位置有关。所有包都进入 packages 文件夹。 几周前,当我卸载/重新安装软件包时,我遇到了一些类似的问题,但仍然不断给我错误。 您可以按照以下步骤进行检查:

  • 卸载您的项目
  • 右键单击 -> 编辑 .csproj 您将看到对包的引用,例如:

<Reference Include="Autofac, Version=5.0.0.0, Culture=neutral,PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL"<HintPath>..\packages\Autofac.5.0.0\lib\net461\Autofac.dll</HintPath> </Reference>

  • 检查<HintPath>中相对于当前工程的.csproj文件的路径是否正确。如果没有,请修复路径(对于所有包,导致其他包也显示错误),或更改 packages 文件夹的位置(小心因为它可能会破坏其他项目的引用,如果解决方案有很多项目)。

不确定它是否会帮助你,但它帮助了我。

【讨论】:

  • 没有帮助:(
  • 所以上面的步骤一切正常。嗯。您是否尝试从引用中删除包,然后通过右键单击引用并在 packages->package_you_want->... .dll 中浏览重新添加?
【解决方案2】:

问题自己解决了,我什至不知道我做了什么:) 谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多