【问题标题】:C# - How does dll references work? [closed]C# - dll 引用如何工作? [关闭]
【发布时间】:2013-11-01 20:34:48
【问题描述】:

我正在开发一个与 Web 服务连接的客户端应用程序,为此我使用 WebClient 类和 JavaScriptSerializer 类将请求的字符串解析为 JSON。

我必须添加来自 System.Web.Extensions.dll 的引用才能使第二个工作正常工作,但如果我将我的 exe 文件移动到其他计算机显然会抛出我找不到 dll 的异常。我尝试将 System.Web.Extensions.dll 复制到我的应用程序的 bin 文件夹并再次添加引用,但似乎它不起作用..

我想做的很简单,我想把引用的dll文件放在我的exe文件的路径中,然后我一直将文件迁移到我想要的任何地方,程序通过相对路径加载dll..

说真的,我不知道为什么微软没有让一些东西更容易处理(例如在 java 中导入 jar 文件)这很令人困惑,我之前的 wiaaut.dll 也发生了同样的事情,我不得不注册它在带有regsvr的系统中..

【问题讨论】:

  • 为什么要投反对票?我只是想澄清一个疑问..

标签: c# .net dll .net-assembly


【解决方案1】:

只要您将其复制到的机器具有完整版本的 .NET 就应该没问题 - 而不仅仅是客户端配置文件。您不需要复制任何内容 - 从 GAC 中提取它应该没问题。只需确保您拥有正确版本的 .NET。

【讨论】:

  • 但通常当我在没有安装框架的机器上运行应用程序时,它会在我运行时显示“您需要安装 x 版本的 .NET Framework 才能运行该程序”它在另一台计算机上不会抛出,这很混乱..
  • 嗯,你说的对,我实际上是在我妈妈的电脑上测试这个应用程序,所以她没有任何 .NET Framework :P 但我会等待我父亲的到来进行测试它在他的电脑上(他也是开发人员)。谢谢你的回答:)
  • @Neo:这是客户资料与完整框架的问题。
  • 对,我做了一些测试,是的,这是 .NET Framework 版本的问题...谢谢您的帮助:)
【解决方案2】:

您可以检查 System.Web.Extensions.dll 是否在目标机器的全局程序集缓存中。为此,只需打开 C:\Windows\Assembly 文件夹(这基本上是您的 GAC 文件夹)。如果不存在,则需要安装它。

要安装它,请使用以下命令: gacutil /i

更多关于 GacUtil 的信息在这里: http://msdn.microsoft.com/en-us/library/ex0ss12c.aspx

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多