2.2 构建 Enterprise Library

来源:互联网 发布:下载系统cms 编辑:程序博客网 时间:2024/03/29 20:53
版权所有(c) 2007  Dorian Deng。署名 共享 非商用。
转载请注明出处:http://blog.csdn.net/doriandeng/archive/2007/09/18/1790533.aspx

尽管 Enterprise Library 包含了所有源码的二进制,但你也许打算定制源码,这意味着需要自己构建 Enterprise Library ,以下章节讨论了如何来构建。在得到二进制以后,也许还要强命名它们,关于这个主题的更详细的信息,请参阅强命名 Enterprise Library 程序集。

安装源码

可以使用源码安装程序安装所有的 Enterprise Library 源码。在运行安装程序时,可以选择安装其中之一或者所有以下条目:应用程序块、应用程序块软件工厂、强命名向导包和快速入门。

运行源码安装程序

  1. 单击开始,指向程序,指向Microsoft patterns & practices,然后单击Enterprise Library 3.1 – May 2007

  2. 选择Enterprise Library Source Code Installer,然后跟着指令开始安装。

Enterprise Library Visual Studio 解决方案文件

Enterprise Library 源码包含了几个 Visual Studio 项目。Enterprise Library 包含多个 Visual Studio 2005 解决方案文件,其中三个解决方案文件包含了 Enterprise Library 内核和所有应用程序块的项目,除去确定非标准依赖的项目(见表1)。可以使用这些解决方案文件构建整个 Enterprise Library ,或者创建一个解决方案文件仅包含需要构建的项目。当构建 Enterprise Library 时,内核和配置控制台将自动构建。

表 2.1. 解决方案文件

配置 描述 EnterpriseLibrary.sln 包含整个应用程序块项目集、Enterprise Library 核心项目和配置控制台。不包括单元测试项目。 EnterpriseLibrary.VSTS.sln 包含整个应用程序块项目集、Enterprise Library 内核项目和配置控制台。包括用 Visual Studio Team System 执行的所有单元测试。 EnterpriseLibrary.Nunit.sln 包含整个应用程序块项目集、Enterprise Library 内核项目和配置控制台。包括用 NUnit 运行的所有单元测试。解决方案文件包含用于强命名程序集的源码,包括应用程序块工厂。

另外,每个程序集都有二个解决方案文件,一个解决方案文件包含 NUnit 单元测试,另一个包括 Visual Studio Team System (VSTS) 单元测试。这些解决方案文件包括所有的项目,以及用于应用程序块的提供程序项目。它们还包括配置设计时项目,配置设计时程序集是运行配置控制台所必要的,但它们在部署和运行应用程序时不是必要的。

更多信息,请参见 Enterprise Library 配置控制台。

注意

安全应用程序块包括一个用于授权管理器(AzMan)的授权提供程序,这个提供程序需要安装 AzMan ,以及 Interop 程序集 Microsoft.Interop.Security.AzRoles.dll。Enterprise Library 解决方案文件并不包括用于 AzMan 授权提供程序的运行时和设计时项目。如果要编译 AzMan 提供程序项目,可以修改 Enterprise Library 解决方案文件或者使用安全应用程序块解决方案文件。

同样,Enterprise Library 解决方案文件不包含下列运行时和设计时项目:

  • ExceptionHandling.WCF

  • Validation.Integration.WCF

  • Data.SqlCe

这些项目分别可以在相应的应用程序块的解决方案文件中找到。

构建配置

Enterprise Library 解决方案文件包括二个构建配置:Release 和 Debug 。所有项目都在一个解决方案文件中,包括单元测试项目,都在二个配置下编译。

构建 Enterprise Library 应用程序块和工具

有二种方法可以构建 Enterprise Library 应用程序块和工具,可以使用批处理文件或 Visual Studio 解决方案文件之一。

用批处理文件构建 Enterprise Library

在安装 Enterprise Library 时,安装程序在开始菜单上创建了一个菜单项为Build Enterprise Library,单击这个菜单项可以编译 Debug 版本的应用程序块和工具。还有一些批处理文件构建 Enterprise Library 并复制结果程序集到合适的位置,这些批处理文件安装在 Enterprise Library 安装目录下的 src 子目录下。

批处理文件如下:

BuildLibrary.bat

编译所有应用程序块和工具。在不带参数加载时,它构建 Debug 版本的应用程序和工具。它接受一个指明可选构建类型的参数,例如 Relaese 。

CopyAssemblies.bat

复制程序集到 bin 目录。当不带参数加载时,它复制 Debug 版本的程序集到 INSTALLDIR/Program Files/Microsoft Enterprise Library/bin 目录。它接受二个参数,第一个参数指明可选的构建类型,第二个参数指出程序集要复制到的目标目录。

BuildLIbraryAndCopyAssemblies.bat

顺序执行BuildLibrary.batCopyAssemblies.bat

用 Visual Studio 解决方案文件构建 Enterprise Library

也可以用 Visual Studio 解决方案文件编译应用程序块和工具。在 Visual Studio .NET 2005 中打开EnterpriseLibrary.VSTS.sln 或者 EnterpriseLibrary.Nunit.sln解决方案文件。在Build菜单上,单击Build Solution。解决方案文件包括整个应用程序块、可选的提供程序、通用程序集和工具的项目集。

解决方案文件不复制程序集到 bin 目录,可以运行 CopyAssemblies.bat 来复制程序集到 bin 目录。开始菜单项目的 Copy assemblies to bin folder 加载此批处理文件。

注意

安装度量模式(instrumentation schema),可以运行InstallServices.bat 批处理文件,或者使用开始菜单上的 Install Instrumentation 快捷方式。要使用快捷方式,单击开始,指向Microsoft patterns & practices,指向Enterprise Library 3.1 – May 2007,然后单击Install Instrumentation

用法提示

这些是构建 Enterprise Library 时的其他关注点:

  • 配置控制台要求应用程序块的程序集与配置控制台可执行程序(EntLibConfig.exe)放置在同样的目录中,它同时要求有运行时程序集和设计时程序集。每个应用程序都打包设计时支持到与运行时实现分开的程序集中,运行使用应用程序块的程序不要求有这些程序集。然而,当使用配置控制台修改应用程序块的配置时是需要它们的。所有必要的程序集都有后缀 .configuration.design.dll。用 CopyAssemblies 批处理文件放置程序集到 bin 目录中。

  • Enterprise Library 配置控制台保存完整的类型限定信息到应用程序的配置文件中,当和未签名的应用程序块一起使用 Enterprise Library 控制台时,用于完整类型限定信息的PublicKeyToken值将为 null 。如果重新构建应用程序块并签名程序集,将不得不修改已有的应用程序配置文件以合并正确的 PublicKeyToken 值。如果没有这么做,应用程序将使用错误版本的应用程序块程序集。可以使用配置控制台打开和保存修改的配置文件。配置控制台使用签名的应用程序块版本。另一种替代方法是,可以手工修改配置文件并修改 PublicKeyToken的值。

  • 安全应用程序块包含一个用于授权管理器(AzMan)的授权提供程序,这个提供程序需要安装 AzMan 并且要求有 Interop 程序集 Microsoft.Interop.Security.AzRoles.dll。如果没有与 Interop 程序集一起在本地安装 AzMan,在构建安全应用程序块解决方案文件时将得到一条错误信息,错误信息指出名为“Interop”的类型或命名空间不存在类或命名空间“Microsoft.”中。这个错误出现在没有安装 AzMan 时,可以忽略。安全应用程序块将成功构建,但 AzMan 提供程序将不可用。

  • Enterprise Library 解决方案文件不包含下列运行时和设计时项目:

    • ExceptionHandling.WCF

    • Validation.Integration.WCF

    • Data.SqlCe

    这些项目分别可以在相应的应用程序块的解决方案文件中找到。

构建快速入门

快速入门项目不包括在 Enterprise Library 解决方案文件中,每个快速入门都有一个包含快速入门项目和所有必要的应用程序块项目的解决方案文件。要构建快速入门,在 Visual Studio .NET 2005 中打开特定快速入门的解决方案文件,然后单击Build菜单上的 Build Solution

原创粉丝点击