开发ASP.NET如何将App_Code文件夹中的共享代码配置生成多个Dll
2012-09-10 14:31
561 查看
开发ASP.NET如何将App_Code文件夹中的共享代码配置生成多个Dll
最近在做一个ASP.NET
项目的二次开发,配好开发环境写了部分代码后进行编译,报了一个错:已经导入了具有相同的简单名称“App_Code, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”的程序集,请尝试移除其中一个引用,或给引用加上签名以启用并行模式。原来是因为原项目中已经编译生成了App_Code.dll,并在二次开发项目中引用,所以编译时名称冲突。尝试直接把二次开发的App_Code文件夹放在虚拟站点的文件夹中,在第一次运行预编译时也报错:应用程序已预编译,因此不允许使用目录“/WebSite/App_Code/”。看来只能想办法把二次开发的共享代码编译成其他名称的Dll了。
去查了一下.NET 2005的文档,查到App_Code 文件夹可以包含任意数量的文件和子文件夹,可编译时仍会将所有代码编译成单个程序集,也就是App_Code.dll,感觉好像不能按文件夹的名字生成以文件夹名称命名的Dll。不过,App_Code有个特性,可以使用多种编程语言编写自定义类,由于App_Code 文件夹中的源代码要编译成单个程序集,所以不同语言编写的代码必须放在不同的子文件夹中,即同一文件夹下的代码必须是用同一种语言编写的,再通过对Web应用程序进行配置,使其将
App_Code 文件夹的子文件夹作为独立的可编译单元处理,因此生成的Dll必定是按编程语言独立的Dll。
在项目的App_Code文件夹下建了一个Code2nd子文件夹,将二次开发的共享代码移到子文件夹下,按照帮助文档中的示例代码在Web.Config中进行配置:
1
<compilation debug="false">
2
<codeSubDirectories>
3
<add directoryName="Code2nd" />
4
</codeSubDirectories>
5
</compilation>
生成网站,顺利通过,到生成的网站目录的Bin文件夹下浏览了一下,有了一个新的Dll,文件名为App_SubCode_Code2nd.dll,显然是Code2nd子文件夹里的代码生成的Dll^_^。
再做一个测试,在App_Code文件夹下又建了两个文件夹,写了两段简单的测试代码,一个用C#,一个VB,生成也成功了,可见,用这种方法可以对比较大的Dll进行拆分,对于Web应用程序共享代码的升级更新也能够实现部分代码块的更新。
相关文章推荐
- 开发ASP.NET 2.0 Web应用程序时如何将App_Code文件夹中的共享代码配置生成多个Dll
- 开发ASP.NET 2.0 Web应用程序时如何将App_Code文件夹中的共享代码配置生成多个Dll
- 开发ASP.NET 2.0 Web应用程序时如何将App_Code文件夹中的共享代码配置生成多个Dll
- ASP.NET中Bin、App_Code、App_Data等文件夹的作用
- ASP.NET Core开发-如何配置Kestrel 网址Urls
- 没有App_Code,如何使用ASP.NET控件?
- ASP.NET中App_Code,App_Data等文件夹的作用
- ASP.NET中App_Code,App_Data等文件夹的作用
- 如何更改Web Service部署生成的App_Code.dll的名称
- 如何修改asp.net生成的dll文件
- 没有App_Code,如何使用ASP.NET控件?
- ASP.NET项目中bin,app_code,app_data 等文件夹的作用
- 配置visual studio code进行asp.net core rc2的开发(转载jeffreywu)
- [代码示例]如何在ASP.NET中获取随机生成的cookie加密与验证密钥
- ASP.NET中App_Code,App_Data等文件夹的作用
- 没有App_Code,如何使用ASP.NET控件?
- Web Site项目和ASP.NET Web Application中App_Code文件夹的作用
- ASP.NET中App_Code,App_Data等文件夹的作用
- ASP.NET中App_Code,App_Data等文件夹的作用
- 如何配置Visual Studio 2010中的ASP.NET MVC的单元测试的代码覆盖率