Web Deployment项目有四个属性页:
- 编译(Compilation)
- 输出程序集(Output Assemblies)
- 签名(Signing)
- 部署(Deployment)
编译页(Compilation Page)
Web Deployment项目“编译”页对话框如下所示:
下表描述了你可以在“编译”页设置的属性:
设置 | 描述 |
输出文件夹 (Output folder) | 该设置规定Web站点预编译输出的文件夹。 |
产生调试信息 (Generate debug information) | 该设置在编译时产生.pdb文件。这个设置会更新预编译Web站点配置文件中compilation 元素的值为“true”,即<debug="true"/>。 |
使用IIS元数据路径作为源输出 (Use IIS Metabase path for source input) | 该设置规定源Web站点应用程序完整的IIS元数据路径。这个设置相当于aspnet_compiler.exe命令的“-m”选项。例如,元数据路径可能为“/LM/W3SVC/1/ROOT/MyWeb/”,其中,“MyWeb”是为虚拟目录。 如果Web站点包含一个或多个子站点,那么这个设置很有用。在编译期间,编译器会处理目录中的所有文件。若有子站点,就会产生生成错误。因此,为了避免错误,你可以规定正在编译的Web站点的IIS元数据路径,使ASP.NET编译器忽略IIS元数据中定义的任何子站点。若要编译子站点,你必须为每个子站点添加各自的Web Deployment项目。
该设置意味着,如果Web网站存在一个或多个虚拟目录,那么需要选择该项。 |
允许预编译站点以便更新 (Allow this precompiled site to be updatable) | 该设置只编译后台文件。在编译后,可以更新ASP.NET Web页面(.aspx)和用户控件(.ascx )文件。若不选择该项,则会移除页面和控件的HTML标记,将其编译到程序集输出中。
该设置意味着,你是否需要在部署Web站点后,调整页面。 |
输出程序集页(Output Assemblies Page)
Web Deployment 项目“输出程序集”页对话框如下所示:
下表描述了你可以在“输出程序集”页设置的属性:
设置 | 描述 |
合并所有输出的程序集到一个程序集 (Merge all outputs to a single assembly) | 该设置合并所有输出的程序集到一个的程序集。 这个设置相当于aspnet_merge.exe命令的“-o assemblyname”选项。为每个网站Web项目创建一个程序集。
该设置意味着,如果Web解决方案包含多个Web站点,那么可以为每个Web站点生成一个程序集。 |
视为库组件 (Treat as library component) | 该设置删除 App_code.compiled 文件,使项目的 App_Code.dll 程序集被添加到Bin目录,而不会与另一个Web站点中的 App_Code.dll 程序集冲突。 这个设置等价于“aspnet_merge.exe”命令的“-r”选项。这个设置对生成 .ascx 控件的库很有用。 |
合并每个目录的输出到它自己的程序集 (Merge each folder output to its own assembly) | 该设置会为每个目录创建一个输出程序集,使你在目录级别上更新 Web 站点,而不是整个Web应用程序。 这个设置相当于 aspnet_merge.exe 命令的“-prefix prefixname”选项。 另外,可以在该设置为生成的每个程序集规定前缀名。例如,若规定前缀为“MyCompany”,那么目录的输出程序集名字就成“MyCompany.SubfolderName”。 |
合并所有的页面和控件到一个的程序集 (Merge all pages and controls to a single assembly) | 该设置合并所有页面和用户控件的输出程序集到一个程序集,使你单独更新UI元素。例如,特殊的文件夹,App_Code,App_WebReferences等会编译到一个单独的程序集。 这个设置相当于 aspnet_merge.exe 命令的“-w assemblyname”选项。 |
为每个页面和控件创建一个的程序集 (Create a separate assembly for each page and control) | 该设置编译每个页面和用户控件到一个的程序集,这个设置不会运行 aspnet_merge.exe,而是 aspnet_compiler.exe 命令的“-fixednames”选项。 注意:用“-fixednames” 选项会禁用编译器的批优化(compiler's batch optimizations),对于大型Web站点,会导致较长的编译时间Web站点。 这个设置对更新已部署的Web站点,进行小粒度的更新(granular updates)很有用。 |
版本输出程序集 程序集版本 文件版本 (Version Output Assemblies Assembly Version File Version) | 该设置合并程序集或是文件版本,格式为“0.0.0.0”。这个设置会覆盖在 AssemblyInfo.vb 或 AssemblyInfo.cs 文件中定义的程序集属性。 这个设置相当于 aspnet_merge.exe 命令的“-copyattrs assemblyfile”选项。 |
签名页(Signing Page)
Web Deployment项目“签名”页对话框如下所示:
下表描述了你可以在“签名”页设置的属性:
设置 | 描述 |
密钥文件位置 (Key file location) | 该设置规定签名程序集的密钥文件的路径。密钥文件由 .NET Framework SDK 包含的 Sn.exe工具产生。 |
延迟签名 (Delay signing) | 该设置用延迟签名来编译程序集,使程序集在生成后的处理中再签名。 |
标记程序集为APTCA属性 (Mark assemblies with AllowPartiallyTrustedCallers attribute (APTCA)) | 该设置规定,当标记程序集为APTCA属性后,只有部分信任的代码可以调用强命名程序集。 |
部署页(Deployment Page)
Web Deployment项目“部署”页对话框如下所示:
下表描述了你可以在“部署”页设置的属性:
设置 | 描述 |
启用Web.config文件节替换 (Enable Web.config file section replacement) | 用一个外部.config文件中匹配节(section)的内容替换Web站点Web.config文件的任意节(section)。该设置使你能够在部署时定义需要向 Web.config写入的元素,另外,提供一种方式,创建部署时需要的配置节(section)。
该设置意味着,你可以在部署时,从外部改变Web站点的Web.config文件。 |
强制匹配节替换 (Enforce matching section replacements) | 该设置的替换,节(section)中的元素数量必须相同。如果元素数量不匹配,那么,生成时就会报错。该设置可以帮助检查Web.config 文件。 |
使用外部配置源文件 (Use external configuration source file) | 通过使用configSource 属性,利用引用的.config文件中的元素,替换已存在的节,以更新Web.config文件。<appSettingsconfigSource="appSettings.config" />如果没有选择该设置,那么节会被.config文件中元素全部替换。这个设置对改变每个生成配置的数据库连接字符串或是Web reference的URL很有用。 |
为输出文件夹创建IIS虚拟目录 (Create an IIS virtual directory for the output folder) | 用你规定的名字,创建一个指向输出文件夹的IIS虚拟目录。该设置对于立刻测试预编译Web应用程序很有用。为了避免与其他配置冲突,把虚拟目录名字作为配置名字的一部分,例如,把“MyWeb_Staging”和“MyWeb_Release”作为虚拟目录的名字。 |
替换已存在的虚拟目录 (Replace the existing virtual directory) | 如果该虚拟目录已经存在,并且正指向一个不同的文件夹,那么,更新元数据,指向当前配置的输出文件夹。如果没有选择该设置,那么,当虚拟目录路径与输出文件夹不匹配时,就会产生一个错误。 |
删除App_Data文件夹 (Remove the App_Data folder) | 该设置从Web站点的预编译中删除 App_Data 文件夹。如果你使用数据库连接字符串访问 SQL Server,或是不使用 SQL Server Express和 Access,那么这个设置很有用。 |