无法加载文件或程序集“App_Code”或其依赖项之一。
Posted
技术标签:
【中文标题】无法加载文件或程序集“App_Code”或其依赖项之一。【英文标题】:Could not load file or assembly 'App_Code' or one of its dependencies. 【发布时间】:2018-09-12 06:58:47 【问题描述】:问题:我想将修改后的代码部署到 Web 服务器。 Web 服务器的 IIS 版本设置为 V2.0。现在我已经在本地机器上开发并发布了 4.0 版本的代码。 (所有 dll 文件中都有 App_code.dll)。
现在,每当我将所有文件与 App_code.dll 一起部署时,我都会收到以下错误:" 此程序集由比当前加载的运行时更新的运行时构建,无法加载”
1) 我的问题是如何在旧版本中构建 App_code.dll。 2)我尝试在发布时将目标框架更改为 V2.0,但由于其他 dll 中的 AJAX 函数未编译,因此无法正常工作。
任何人都可以建议如何运行该网站..
感谢您的帮助。
谢谢
【问题讨论】:
我要问一个显而易见的问题,但是你能改变 IIS 应用程序以在 4.0 中运行吗? @AlwaysLearning:它在本地工作,但即使在 UAT 服务器上也安装了 .net 版本 4.6,我尝试更改为最新版本仍然给出一些错误。这个问题还有其他解决方案吗? 在 UAT 上运行的应用程序的 IIS 应用程序池是什么版本的 .net? 2.0 还是 4.0? @AlwaysLearning:它的 V2.0。在 UAT 中安装了 .net 框架 4.6,我尝试将 IIS 更改为 4.0,但得到 HTTP 服务 **** 类似的错误。问题仅在于在本地机器上以 V4.0 构建的 App_code.dll。我想在 v2.0 中构建它,但由于其他与 ajax 相关的错误而无法构建。 【参考方案1】:很抱歉我给出的答案...但是试试这个...
尝试将<codeBase>
元素添加到应用程序配置文件中,以指定每个 dll 的确切位置以及所需的 .Net 版本。显然,这是因为<codebase>
在每次需要加载程序集时在探测启发式开始时检查。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="sharedlibA" culture="neutral" publicKeyToken="..." />
<codeBase version="1.0.0.0" href="bin\sharedlibA.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="sharedlibB" culture="neutral" publicKeyToken="..." />
<codeBase version="1.0.0.0" href="bin\sharedlibB.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
如果这不起作用,请尝试this。
【讨论】:
感谢回复,知道如何获取publicKeyToken吗?我会试试这个【参考方案2】:迟到的答案,但是,我正在为未来的观众写这篇文章。 将应用程序发布到服务器后,我遇到了同样的错误。 我想这样做。
发布时设置中有配置。
在发布部分有一个名为
的选项发布期间预编译
您必须选中复选框并保存然后发布。这将获取您的代码文件 .vb/.cs 并将它们转换为已编译的 DLL 文件。 在我的情况下,它没有被选中。
【讨论】:
以上是关于无法加载文件或程序集“App_Code”或其依赖项之一。的主要内容,如果未能解决你的问题,请参考以下文章
无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝
无法加载文件或程序集“CefSharp.dll”或其依赖项之一
BadImageFormatException 无法加载文件或程序集或其依赖项之一。试图加载格式不正确的程序