ASP.NET 网站项目构建但发布时出错

Posted

技术标签:

【中文标题】ASP.NET 网站项目构建但发布时出错【英文标题】:ASP.NET Website Project builds but errors on publish 【发布时间】:2015-11-24 09:09:38 【问题描述】:

我们有一个使用 Visual Studio 2013 创建的 .NET 4 网站项目,它引用 System.Net.Http .dll。

这是 web.config 中加载 .dll 的行:

<add assembly="System.Net.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

项目构建良好,但是当我们尝试“发布网站”时,它会出现以下错误:

命名空间中不存在类型或命名空间名称“Http” “System.Net”(您是否缺少程序集引用?)

看起来程序集可能是从 GAC 加载的,我们已尝试将程序集放在应用程序的 BIN 文件夹中,但这没有任何区别 - 它仍然显示为项目属性页面上的 GAC 引用。

我们也尝试过添加:

<runtime>
    <assemblyBinding>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <codeBase version="1.0.0.0" href="/bin/System.Net.Http.dll"/>
      </dependentAssembly>
    </assemblyBinding>

这里建议:Could not load file or assembly System.Web.Http.WebHost after published to Azure web site

但这似乎也不起作用。

我们已将 Target Framework 更改为 3.5 和 4.5,但没有任何效果。

我们已经尝试从几台不同的机器上发布。

编辑:我们已经尝试了 RobAda 中建议的 nuget 包,但没有达到预期的效果,我们仍然遇到错误。

【问题讨论】:

@coder,谢谢我们已经尝试过了,不幸的是,当我们尝试由于遗留代码而无法构建项目时 - 似乎我们目前停留在 4.0 上。 【参考方案1】:

我在朋友的应用程序上看到了同样的问题,我们需要挖掘很多,但最终发现你需要安装这个 nuget 包:

https://www.nuget.org/packages/Microsoft.Net.Http

然后您需要添加对 System.Net.Http 的引用,以免产生所述错误。

【讨论】:

【参考方案2】:

听起来你正试图在不适合/不适合的地方硬塞。

一种可能的架构方法是将功能分离到一个解决方案中。

如果时间限制是一个问题并且这是可能的,它可能是您问题的解决方案。

但长期而言:确保您与时俱进是值得的,因为随着时间的推移您会遇到更多这样的问题,当然这必须务实...

【讨论】:

这可能是他们发布的概念验证应用程序可以正常发布,我们可以在单独的域上托管,我们会尝试并回复您。

以上是关于ASP.NET 网站项目构建但发布时出错的主要内容,如果未能解决你的问题,请参考以下文章

旧的 Asp.Net 网站项目 - 没有项目文件?

在构建后事件中使用命令部署 asp.net mvc 网站

如何使用 powershell 构建、发布 ASP.NET 核心项目来构建服务器?

构建 Asp.Net Core 项目时出现 System.IO.PathTooLongException

新项目在构建 Android 时出错

在 TFS 2010 构建服务器中预编译 asp.net MVC 网站