compilation与编译
关于本配置节的内容不算多,但关于ASP.NET编译的内容还是有一点的,鄙人认为只是了解一下即可,主要影响到部署。
在 App_Code 文件夹中使用多种编程语言
因为 App_Code 文件夹中的源代码要编译成单个程序集,所以 App_Code 文件夹中的所有文件必须使用相同的编程语言编写。例如,App_Code 文件夹不能同时包含采用 Visual Basic 和 C# 编写的源代码。
但是,您可以对 Web 应用程序进行配置,使其将 App_Code 文件夹的子文件夹作为独立的可编译单元处理。这样,每一个文件夹就可以包含以不同编程语言编写的源代码。通过在 Web.config 文件的 codeSubDirectories 元素中创建一个 compilation 元素,然后添加一个对子文件夹的引用,即可指定该配置。下面的示例阐释如何对名为 VBCode 和 CSCode 的子文件夹进行配置,使其编译成不同的程序集:
<compilation debug="false"> <codeSubDirectories> <add directoryName="VBCode" /> <add directoryName="CSCode" /> </codeSubDirectories> </compilation>
来自 <https://msdn.microsoft.com/zh-cn/library/t990ks23(v=vs.100).aspx>
编译文件夹位置
默认情况下,当您编译 Web 应用程序时,编译的代码放在 Temporary ASP.NET Files 文件夹中。此文件夹是您安装 .NET Framework 的位置的子目录。通常,位置如下:
%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files
一般在开发过程中,应用程序的端口号决定了在编译文件夹的路径,且VS打开后就会自动网此路径编译当前解决方案,因此假设两个站点具有相同的端口号,后打开的解决方案的编译结果会覆盖先打开的编译结果,也就是说即便是在先打开的解决方案进行调试,实际运行的还是后面打开的解决方案的应用程序。
在compliation一节中常见的如下,指定了编译的生成的dll是调试模式还是发布模式;还有指定使用的.NET Framwork版本。
<compilation debug="true" targetFramework="4.0" />
另外文档说编译的默认语言是vb,但是在.NET Framework4的默认配置文件中未找到相关指定,而应用程序中的配置节中仍无指定,此处编译语言该如何定夺????
ASP.NET 预编译概述
来自 <https://msdn.microsoft.com/zh-cn/library/bb398860(v=vs.100).aspx>
了解 ASP.NET 动态编译
来自 <https://msdn.microsoft.com/zh-cn/library/ms366723(v=vs.100).aspx>
compilation 元素(ASP.NET 设置架构)
来自 <https://msdn.microsoft.com/zh-cn/library/s10awwz0(v=vs.110).aspx>