部署输出文件的位置和目录结构
更新:2007 年 11 月
在生成部署报告之前,您可以指定一个位置,用于复制与计划部署的应用程序关联的源文件、内容文件和二进制文件。通过指定一个位置,可以更方便地查找和收集部署所需的那些文件。您可以使用将用来生成部署报告的部署关系图的 Destination Path 属性指定此部署输出位置。有关更多信息,请参见如何:生成部署报告。
部署输出文件的位置和目录结构概述
生成部署报告时,报告的 HTML 和 XML 版本将保存到磁盘上的主解决方案文件夹中。在解决方案资源管理器中,这些报告显示在创建用于生成部署报告的系统关系图和部署关系图的系统文件夹中。
对于部署报告中每个已实现的应用程序,将会在指定的输出位置创建一个项目目录。每个项目目录都类似于解决方案资源管理器中的应用程序项目层次结构。但是,创建此目录使用的是磁盘上的项目文件夹名称,而非解决方案资源管理器中的项目名称。另外,这些项目文件夹的父文件夹不包含在所创建的目录结构中。有关更多信息,请参见如何:在部署报告中查找部署输出文件的路径。
警告: |
---|
请确保项目及其在磁盘上的文件夹都具有唯一的名称,即使这些项目在解决方案资源管理器中具有不同的名称且它们在磁盘上的文件夹具有不同的父文件夹,也应确保这一点。在解决方案资源管理器中重命名项目时不会更改它们在磁盘上的程序集名称或文件夹名称。例如,如果在解决方案资源管理器中将一个 Windows 项目从“MyGeneratedName”重命名为“MyRenamedProject”,则该项目将编译为“MyGeneratedName.exe”而非“MyRenamedProject.exe”;该项目在磁盘上的项目文件夹名称仍保留为“MyGeneratedName”,并且将在输出位置创建一个名为“MyGeneratedName”的目录。如果一个解决方案包含在磁盘上具有相同文件夹名称的项目,则即使这些文件夹位于不同父文件夹中,也只为那些具有相同名称的项目创建单个目录。这可能会导致这些项目的部分部署输出文件在复制到此单个目录时互相覆盖。 |
部署报告的 HTML 和 XML 版本描述了在指定位置创建的项目目录和复制到该位置的文件。然后,可以使用此部署报告确定需要将哪些文件安装在目标计算机上。通常,这些文件包括二进制文件(例如应用程序 DLL)、可执行文件、Web 服务 .asmx 文件、包括 .aspx 文件的 Web 内容文件、主 .cs 文件、.css 样式表文件和配置文件(例如 Web.config 和 App.config 文件)。有关更多信息,请参见部署报告中的应用程序信息。
以下部分包含有关在指定位置(具体位置取决于应用程序类型)创建的项目目录的更多信息:
Deployment Output Directory Structure for ASP.NET Applications
Deployment Output Directory Structure for Windows and Office Applications
ASP.NET 应用程序的部署输出目录结构
在指定输出位置创建的目录将包含以下目录,具体取决于与 ASP.NET 应用程序关联的终结点:
App_Code
如果应用程序公开一个或多个 Web 服务提供方终结点,此目录将包含这些 Web 服务的代码隐藏文件。
App_WebReferences
如果应用程序使用一个或多个 Web 服务,此目录将包含一个名为“\ApplicationName\WebServiceProxies”的其他目录,它包含所使用的相应 Web 服务的 .discomap 和 .wsdl 文件。
Bin
如果应用程序公开一个或多个 Web 内容提供方终结点,此目录将包含应用程序 DLL、程序集、关联的清单文件和可执行文件。
Images
如果将任何图像文件作为公开 Web 内容提供方终结点的应用程序的一部分包括在内,则此目录将包含这些文件。
Web.config 应用程序配置文件和所有其他内容文件(如 .asmx、.aspx 和 .aspx.cs、.master 和 .master.cs、.css 文件)都位于顶层目录下。
Windows 和 Office 应用程序的部署输出目录结构
对于 Windows 或 Office 应用程序来说,在指定输出位置创建的项目目录将包含“Bin”目录。此“Bin”目录将包含一个“Debug”或“Release”目录,其中包含应用程序程序集、关联的清单文件和可执行文件。具体包含目录取决于生成部署报告时解决方案的生成配置。项目目录还将包含一个“Web References”目录(如果应用程序使用一个或多个 Web 服务)和 App.config 应用程序配置文件。
说明: |
---|
生成部署报告时,Windows 应用程序的程序集清单 AssemblyName.dll.manifest(或 AssemblyName.exe.manifest)将被复制到程序集所在的同一目录中。但是,应用程序的配置文件将被命名为 App.config 而非 MyApplicationName.exe.config,并且放在此应用程序的目录下。为了使 Windows 在运行时能够找到并加载该配置文件,部署过程需要将 App.config 文件复制到应用程序的可执行文件或 DLL 文件的位置,然后将 App.config 重命名为 MyApplicationName.exe.config。 |