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 网站项目构建但发布时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 powershell 构建、发布 ASP.NET 核心项目来构建服务器?