如何:从以前的版本升级自定义测试条件
本主题适用于 Visual Studio 高级专业版和 Visual Studio 旗舰版,但不适用于 Visual Studio 2010 专业版或 Visual Studio 学习版。
为使在 Visual Studio 较早版本中创建的现有测试单元条件正常工作,必须将其升级。 为此,需要执行下列步骤:
更新引用
添加扩展兼容性特性
应用新的注册过程
更新引用
更新项目引用
(仅限 Visual Basic)在**“解决方案资源管理器”中,单击“显示所有文件”**。
在**“解决方案资源管理器”中,展开“引用”**节点。
右击上一个 Microsoft.Data.Schema.UnitTesting 引用,然后单击**“移除”**。
在**“解决方案资源管理器”中右击“引用”节点,再单击“添加引用”**。
- 或 -
在**“项目”菜单上,单击“添加引用”**。
此时将出现**“添加引用”**对话框。
单击**“.NET”选项卡。 在“组件名称”列表中,选择“Microsoft.Data.Schema”和“Microsoft.Data.Schema.UnitTesting”,然后单击“确定”**。
您的测试条件正在使用当前引用。
添加扩展兼容性特性
接下来,必须验证测试条件类是否具有扩展兼容性特性,如以下过程所示。 定义功能扩展时,请用特定的数据库架构提供程序 (DSP) 或基数据库架构提供程序声明该扩展的兼容性,这样只会为适当的项目类型加载扩展。 有关扩展兼容性特性的更多信息,请参见扩展 Visual Studio 的数据库功能。
添加扩展兼容性特性
添加数据库服务提供程序扩展兼容性特性,如下例所示:
<DatabaseServicesProviderCompatibility (GetType(DspCompatibilityCategory.None))> _ <DisplayName("NewTestCondition")> _ Public Class NewTestCondition Inherits TestCondition End Class
[DatabaseServicesProviderCompatibility(DspCompatibilityCategory.None)] [DisplayName("NewTestCondition")] public class NewTestCondition:TestCondition { // Additional implementation to be added here }
应用新的注册过程
在 Visual Studio 的以前版本中,必须将测试条件安装到全局程序集缓存中。 在 Visual Studio 高级专业版或 Visual Studio 旗舰版的此版本中,注册过程已更改,如以下过程所示。 有关更多信息,请参见如何:注册和管理功能扩展。
更新的引用就绪后,请确认程序集经过了签名和编译。
下一步是收集项目中生成的程序集信息(包括版本、区域性和 PublicKeyToken),以便于注册自定义扩展程序集。
收集程序集信息
更新的引用就绪并已添加扩展兼容性特性(如以前的过程所示)后,请确认程序集经过了签名和编译。
在**“视图”菜单上,单击“其他窗口”,然后单击“命令窗口”打开“命令”**窗口。
在**“命令”**窗口中,键入以下代码。 将 FilePath 替换为已编译的 .dll 文件的路径和文件名。 在路径和文件名的两侧加双引号。
提示
默认情况下,已编译的 .dll 文件的路径为 SampleGenerator\bin\Debug。
? System.Reflection.Assembly.LoadFrom(@"<FilePath>").FullName
按 Enter。 此时该行应类似于以下内容,其中含有您的特定 PublicKeyToken:
" GeneratorDateRanges, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn"
记下或复制此程序集信息;下一过程中将使用这些信息。
接下来,将使用上一过程中收集的程序集信息创建 XML 文件。
创建 XML 文件
在**“解决方案资源管理器”**中选择项目。
在**“项目”菜单上选择“添加新项”**。
将显示**“添加新项”**对话框。
在**“模板”窗格中,找到并选择“XML 文件”**项。
在**“名称”文本框中,输入适用的名称,然后单击“添加”**按钮。
此时 XML 文件将添加到**“解决方案资源管理器”**的项目中。
提示
必须使用 dll 的名称(这种情况下为“myDllName”后跟“.Extensions.xml”),程序集才能正确注册。
打开该 XML 文件,将其更新以匹配此过程中后面的 XML 代码。 替换上一过程中检索的程序集的版本、区域性和 PublicKeyToken。
<?xml version="1.0" encoding="utf-8"?> <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd"> <extension type=" myDllName.myClassName" assembly="myDllName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn" enabled="true"/> </extensions>
在**“文件”菜单上,单击“全部保存”**。
接下来,要将程序集和 XML 文件复制到 Extensions 目录。 Visual Studio 高级专业版 启动时,将识别 <Microsoft Visual Studio 10.0>\VSTSDB\Extensions 目录和子目录中的任何扩展,并注册这些扩展以用于会话中。
将程序集和 XML 文件复制到 Extensions 目录并将其注册
在 <Microsoft Visual Studio 10.0>\VSTSDB\Extensions\ 目录中创建一个新文件夹,名为 CustomGenerators。
将程序集文件从 My Documents\Visual Studio 2008\Projects\<项目名称>\<项目名称>\bin\Debug\ 目录复制到已创建的 <Microsoft Visual Studio 10.0>\VSTSDB\Extensions\CustomGenerators 目录。
将 XML 文件从 My Documents\Visual Studio 2008\Projects\<项目名称>\<项目名称>\ 目录复制到已创建的 <Microsoft Visual Studio 10.0>\VSTSDB\Extensions\CustomGenerators 目录。
提示
最佳做法是将扩展程序集放在 <Microsoft Visual Studio 10.0>\VSTSDB\Extensions 目录下的文件夹中。 这样将帮助您识别随产品包括了哪些扩展,以及哪些扩展是您自定义创建的。 建议使用文件夹将扩展按特定类别进行组织。