codeSubDirectories 的问题
Posted
技术标签:
【中文标题】codeSubDirectories 的问题【英文标题】:Issue With codeSubDirectories 【发布时间】:2012-12-12 21:57:37 【问题描述】:这是一个冗长的 - 请忍耐..!
我有一个网站,目前使用单体“app_code”dll 文件 - 并且正在考虑将 dll 分成几部分以便更好地维护。
我正在使用 web.config 中的部分将我的 app_code 拆分为多个文件夹式 dll 文件。该部分如下所示:
<codeSubDirectories>
<add directoryName="CodeSubDir1"/>
<add directoryName="CodeSubDir2"/>
...
</codeSubDirectories>
我已经为“app_code”文件夹中的每个 .cs
文件创建了单独的子文件夹,除了少数相互引用的 .cs 文件 - 因此需要放在同一个子文件夹中. .cs 文件被移动到其相应的子文件夹。
在这些更改之后,“app_code”文件夹下没有 .cs 文件。我已经设置了 codeSubDirectories 中元素的顺序,以便处理所有其他引用。
该网站在我的开发中成功构建和发布。环境。发布时选中“允许此预编译站点可更新”和“使用固定命名和单页程序集”复选框。发布期间不会创建 app_code.dll
和 app_code.compiled
文件,因为“app_code”文件夹下没有 .cs 文件。 app_code 下的每个子文件夹都发布为app_subcode_sub_folder_name.dll
和app_subcode_sub_folder_name.compiled
。
该网站及其发布的版本在我的开发中也可以正常工作。环境。
在我将发布的文件更新到我的暂存设置 [.NET 3.5/IIS 6/Win 2003]
后,[在两个单独的 URL 上] 出现这两个错误:
URL-1 错误: 无法加载文件或程序集“App_Code,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集“App_Code,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。 源文件:xxx\v2.0.50727\Temporary ASP.NET Files\xxx\xxx\xxx\App_Web_xxx.8.cs 行:0
URL-2 错误: 无法找到该资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。
我的分段更新过程是:我将"app_subcode_xxx.dll"
和"app_subcode_xxx.compiled"
文件复制到“bin”文件夹并删除现有的“app_code.dll”和“app_code.compiled”文件。我在登台时将 codeSubDirectories 部分添加到 web.config。
我搜索了GAC
、代码和注册表,以查找对程序集“app_code”的任何引用,但没有成功。我错过了什么?是否需要任何其他步骤才能在我的暂存站点上进行这项工作?我是否还需要从 dev.js 复制所有其他已发布的 DLL。分期?
【问题讨论】:
我个人不使用codeSubDirectories
节点,因为无论如何都会编译App_Code
文件夹中的所有内容。当我在 App_Code
文件夹中创建子目录时,我使用文件夹名称作为文件夹中文件的命名空间;所以子文件夹中的每个类都有namespace MySubFolderName
- 我发现这是一种更简单的方法来保持整洁,并且在使用智能感知时查找.cs
文件要容易得多。我知道这对您当前的错误没有帮助,尽管它可能会为您提供另一种不那么麻烦的代码布局方式。
【参考方案1】:
将所有 dll 和编译文件从发布文件夹复制到暂存环境。可能是其他 dll 和编译文件仍在引用应用代码。
【讨论】:
以上是关于codeSubDirectories 的问题的主要内容,如果未能解决你的问题,请参考以下文章
dir1 和 dir2 chmod 700, dir3 chmod 777 但我得到权限被拒绝
如何从 Java 中的 Azure Blob 存储中读取文件夹结构为“dir1 / dir2 / dir3 / 20210301-20210331”的 csv 文件?