不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
在App_Code中使用多种语言
编辑:dnawo 日期:2008-09-03
App_Code和Bin文件夹的不同之处在于Bin文件夹里面存储的是已经编译好的程序集,而App_Code存储的是源代码,默认情况下他们在动行时会被编译成单个程序集。这就会发生一个现象:由于Bin中是已经编译好的程序集,所以他们可以是由各种不同的语言编写的,而App_Code中的源代码在是运行时动态编译成单个程序集,所以你不能在App_Code中存放各种语言编写的源代码,如ClassA.vb、ClassB.cs,否则将无法编译,你会收到类似的错误信息:
引用内容
我们并未显示的标记App_Code中的源代码是使用哪种语言编写的,那编译的时候是怎么判断的?估计是根据文件的类型(假设的),如果是.vb文件则调用Visual Basic编译器,如果是.cs文件则调用C#编译器,所以你不能在App_Code中存放多种类型的文件,否则将无法判断应用哪种类型编译器来生成单个程序集!
不过在文章的开头我们有说"默认情况下他们在动行时会被编译成单个程序集",实际上通过配置我们可以实现将App_Code某个子文件夹的源代码单独编译成一个程序集,只要保证该子文件夹中的源代码使用一种语言编写即可,这样就可以将App_Code中的源代码编译成多个程序集,那上边的问题就解决了。配置方法也很简单,在Web.Config中增加codeSubDirectories节点即可,如:
这样VBCode和CSCode子文件中的源代码都将被编译成单个程序集。注意上边文件夹不表示VBCode子文件夹下源代码必须是用vb编写,CSCode子文件夹下的源代码必须是用C#编写,还是在运行的时候根据子文件夹中的文件类型来决定使用哪种编译器的。

System.Web.HttpException: 文件“/App_Code/ClassA.vb”和“/App_Code/ClassB.cs”使用的语言不同,这是不允许的,因为它们要在一起编译。
我们并未显示的标记App_Code中的源代码是使用哪种语言编写的,那编译的时候是怎么判断的?估计是根据文件的类型(假设的),如果是.vb文件则调用Visual Basic编译器,如果是.cs文件则调用C#编译器,所以你不能在App_Code中存放多种类型的文件,否则将无法判断应用哪种类型编译器来生成单个程序集!
不过在文章的开头我们有说"默认情况下他们在动行时会被编译成单个程序集",实际上通过配置我们可以实现将App_Code某个子文件夹的源代码单独编译成一个程序集,只要保证该子文件夹中的源代码使用一种语言编写即可,这样就可以将App_Code中的源代码编译成多个程序集,那上边的问题就解决了。配置方法也很简单,在Web.Config中增加codeSubDirectories节点即可,如:
复制内容到剪贴板
程序代码

<system.web>
<compilation>
<codeSubDirectories>
<add directoryName="VBCode" />
<add directoryName="CSCode" />
</codeSubDirectories>
</compilation>
</system.web>
<compilation>
<codeSubDirectories>
<add directoryName="VBCode" />
<add directoryName="CSCode" />
</codeSubDirectories>
</compilation>
</system.web>
这样VBCode和CSCode子文件中的源代码都将被编译成单个程序集。注意上边文件夹不表示VBCode子文件夹下源代码必须是用vb编写,CSCode子文件夹下的源代码必须是用C#编写,还是在运行的时候根据子文件夹中的文件类型来决定使用哪种编译器的。
评论: 0 | 引用: 0 | 查看次数: 4159
发表评论
请登录后再发表评论!