这是一个漫长的 - 请耐心..!问题代码SubDirectories
我有一个网站,目前使用巨型“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 \临时ASP.NET文件\ XXX \ XXX \ XXX \ App_Web_xxx.8.cs行: 资源无法找到:在URL-2 0
错误。 描述:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。
我的暂存更新过程是:我将"app_subcode_xxx.dll"
和"app_subcode_xxx.compiled"
文件复制到“bin”文件夹并删除现有的“app_code.dll”和“app_code.compiled”文件。我在分段上将codeSubDirectories部分添加到web.config。
我已经搜索了GAC
,代码和注册表以查看程序集“app_code”的任何引用,但都没有运气。我错过了什么?是否有任何额外的步骤需要在我的临时网站上进行这项工作?我是否需要复制所有其他发布的DLL以及dev。举办?
就我个人而言,我不会使用'codeSubDirectories'节点,因为无论如何都会编译'App_Code'文件夹中的所有内容。当我在'App_Code'文件夹中创建一个子目录时,我使用文件夹名称作为文件夹内文件的命名空间;所以子文件夹中的每个类都有'名字空间MySubFolderName' - 我发现这是一个简单的方法来保持整洁,并且在使用智能感知时,找到'.cs'文件要容易得多。我知道这并不能帮助你解决当前的错误,尽管它可能会给你另一种更麻烦的方式来布置你的代码。 – Darren