【问题标题】:missing a using directive or an assembly reference issue after deploying an ASP.NET "Website"部署 ASP.NET“网站”后缺少 using 指令或程序集引用问题
【发布时间】:2012-08-23 12:03:58
【问题描述】:

所以我有一个 ASP.NET 网站,它在我的机器上运行良好。但是当我将它部署在网络主机服务器上时,它给了我一个错误提示:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)

Source Error:


Line 15: using Microsoft.VisualBasic;
Line 16: using System.Data.SqlClient;
Line 17: using Newtonsoft.Json;
Line 18: using System.Globalization;
Line 19: using System.Text.RegularExpressions;

我认为这是一个经典错误,asked 已经有类似的问题,即使是我 before。但是,所有解决方案要么不明确,要么不适用。

由于它是一个“网站”项目,因此 aspx.cs 文件的属性不包含任何字段,例如“构建操作”或“复制本地”等。我正在使用 Newtonsoft 解析 JSON。有人可以建议我逐步解决这个问题吗?

我遇到了诸如清理之类的解决方案。清洁什么?在我的解决方案资源管理器中,有一个 BIN 文件夹,其中包含 Newtonsoft 库的 dll、xml 和 pdb;使用 COPY WEBSITE 工具将其原样复制到 webhost 服务器。

我需要做什么来解决这个问题?谢谢一堆。

【问题讨论】:

  • 您是否将newsoftxxx.dll 复制到Bin 文件夹中?
  • newsoftxxx.dll 是什么?没有这个名字,有一个 Newtonsoft.Json.dll、Newtonsoft.Json.xml 和 Newtonsoft.Json.pdb。所有都存在于本地和 webhost 的 Bin 文件夹中。谢谢。
  • 当您发布它并部署在 Web 主机服务器上时,您在那个 Bin 文件夹中(不是在您的开发环境中)有 dll 吗?
  • 我使用复制网站工具部署在虚拟主机服务器上,是的,它就在那里。截图:i.imgur.com/K95OE.png

标签: c# asp.net visual-studio-2010 deployment json.net


【解决方案1】:

如果您不部署到应用程序根目录,而是部署到普通的 windows 文件夹,就会发生这种情况。

bin 文件夹必须位于您的应用程序根目录 (~/bin) 才能正确解析程序集。您可以通过更改 web.config 文件中的私有探测路径来更改此设置,但这是一个糟糕的解决方案。

确保您将应用程序上传到配置为托管应用程序的文件夹。如果您有远程桌面访问权限,这可以在您的 IIS 管理器中完成。共享主机解决方案可以在基于 Web 的配置工具中提供此功能。登录您的“控制面板”并环顾四周。

或者您可以联系您的托管支持。

【讨论】:

    【解决方案2】:

    采取这些步骤: -> 解决方案资源管理器窗口 -> 在 Visual Studio 中的 .cs 文件上用鼠标右键 -> 选择属性 -> 构建操作 = 编译

    删除您的 Newtonsoft 的引用并将 Newtonsoft.dll 复制到您的 bin 文件夹并从那里提供参考。

    【讨论】:

    • 您好,感谢您的帮助。选项 1 是不可能的,因为它是一个“网站”项目,并且它的属性中没有这样的选项。对于选项 2,您能描述一下我该怎么做吗?我不太明白。一步一步的解释将是非常可观的。 “从那里提供参考” - 在哪里?如何?谢谢。
    • @J.斯蒂恩请帮忙。谢谢。
    • 首先确保bin文件夹中存在Newtonsoft.dll
    • 确实如此:i.imgur.com/K95OE.png 请建议还能做什么?非常感谢。
    【解决方案3】:

    建立您的网站并将其发布到某个文件夹。然后将所有必需的文件复制到您的 Web 服务器。只需检查 bin 文件夹(Web 服务器)中是否有 Newtonsoft dll。如果没有,则从本地计算机复制并粘贴到 Web 服务器。

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 2015-12-22
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 2019-12-01
      相关资源
      最近更新 更多