【问题标题】:C# Web Api/ MVC.net not loading assemblies properlyC# Web Api/MVC.net 没有正确加载程序集
【发布时间】:2016-04-19 14:35:36
【问题描述】:

我是 C# 和 .net 的新手,我需要使用它与我们使用的主要软件的 SDK 一起工作。

我可以添加他们告诉我在控制台应用程序中添加的程序集,一切正常。当我尝试将它们添加到任何 Web 应用程序(MVC 或 WebAPI)时,我不断收到错误消息,提示缺少其他程序集。最终,我只是在 sdk 文件夹中添加了每个程序集/引用(不​​确定正确的术语,几乎只是 .dll 文件),现在它正在工作。这绝对不是正确的做法。

我是否缺少允许程序集/引用加载其他程序集/引用的东西,或者是我的问题的其他原因?

更新:

例外情况通常是这样的:

Could not load file or assembly 'Server, Version=1.5.1.0, Culture=neutral, PublicKeyToken=d11ef57bba4acf91' or one of its dependencies. The system cannot find the file specified. 

并且它不会在构建过程中发生,只有在实际从 Web 应用程序调用该函数时(在我的情况下,因为它是一个 api,当我访问返回我的 JSON 数据的 URL 时)

【问题讨论】:

  • dll-s 的物理位置在哪里?所有其他必需的 dll 是否都在同一个文件夹中?
  • dll-s 都在同一个文件夹中,就像我之前所说的,当我只包含 sdk 指南说在构建控制台应用程序时要包含的那些时,它可以正常工作。只有在构建 Web 应用程序时才会这样做。
  • 带有dll的文件夹是在应用程序文件夹内还是其他地方?
  • 你什么时候遇到问题/错误?当您尝试构建或尝试运行应用程序时?更具体的错误描述...
  • 很难猜测,但取决于您的 console 应用程序执行/调用或依赖的内容可能与 Web 应用程序所依赖的内容完全不同(在同一个 SDK 包中)。

标签: c# .net asp.net-mvc asp.net-web-api2


【解决方案1】:

您可以使用与 Visual Studio 一起安装的名为“IL Disassembler”的工具来查看 SDK 的程序集所依赖的其他依赖项。

安装位置可能会有所不同,但我的在这里... "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\ildasm.exe"

将您正在使用的 SDK 程序集拖放到该工具上,然后单击清单字段。将打开一个对话框,其中包含您需要包含的其他程序集。

【讨论】:

    【解决方案2】:

    如果您的控制台应用程序可以正常工作,但 Web 应用程序不能正常工作,那么异常应该指定缺少哪个程序集。

    将您的控制台输出目录与您的 Web 构建的输出目录进行比较。确保将所需的 dll 部署到您正在运行的 Web 目录。

    在带有 Web 项目的 Visual Studio 中,找到引用下的程序集并选择它。确保属性“复制本地”设置为 TRUE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2012-06-18
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多