我是否可以使用TestStand调用Visual Studio 2010 以及调用.NET Framework 4.0代码模块?



主要软件:
主要软件版本: 4.0.1f1
主要软件修正版本: 2010
次要软件: N/A

问题:

如果我在我的电脑上安装了 Visual Studio 2010,我是否可以从TestStand 中调用 .NET 汇编语言或用 Visual Studio 2010 编译的VC++ DLLs?我 是否可以使用TestStand 中的 Create/Edit Code 特性以及使用Visual Studio 2010对代码进行调试 ?



解答: TestStand 2010 (4.5) .NET 适配器可以通过配置文件调用Visual Studio 2010 创建的 .NET Framework 4.0 汇编程序。一个应用程序只能装载一个版本的 .NET Common Language Runtime (CLR) 到内存中,而且由于 TestStand 是通过 .NET 2.0 CLR 开发的,它将默认地装载 .NET 2.0 CLR。 你可以使用配置文件强制 TestStand 装载 .NET 4.0 CLR 。 请参考具有指导性的 TestStand 参考手册 第五章关于创建配置文件的模块适配部分 Using the .NET Framework 。

TestStand 2010 支持使用Visual Studio 2010中的 Create/Edit Code, debugging, and calling .NET assemblies or VC++ DLLs 等特性。

TestStand 4.2.1 以及 早期的 .NET 适配器不支持调用 .NET Framework 4.0 汇编程序。

TestStand 4.2.1 以及 早期版本没有官方支持使用Visual Studio 2010中的 创建/编辑 代码, 调试 和调用 .NET 汇编程序 或者 VC++ DLLs 等特性。 但是,TestStand 4.2.1已经进行了局部的测试来发布以下结论。如果你通读了整篇文档之后仍然有疑问,请联系 National Instruments Support

注意: 以下结论的摘要只是针对于 TestStand 4.2.1。 你可以避免处理以下问题 并且使用 TestStand 2010来避免它们。如果你计划或者已经正在使用 TestStand 2010,你可以跳过这一部分。

TestStand 4.2.1 结论摘要
你可以:
  1. 调用通过 Visual Studio 2010 编译的以 .NET Framework 2.0, 3.0, or 3.5为目标的汇编程序。
  2. 调用Visual Studio 2010 创建的 C/C++ DLLs 。
  3. 在C#.NET and VB.NET项目中中使用 编辑 代码 特性。
  4. 使用 Visual Studio 2010 调试代码模块。
  5. 在Visual Studio 2010中使用 TestStand UI 控件。
你不可以:
  1. 调用通过 Visual Studio 2010 编译的以.NET Framework 4.0为目标的汇编程序。
  2. 在任意的Visual Studio 2010 项目中使用 创建 代码特性。
  3. 在任意的Visual Studio 2010 项目中使用 编辑 代码特性。
  4. 使用 TestStand 单步执行 特性调试Visual Studio 2010 的代码模块。
请参照以下内容进一步了解以上结论的细节。

使用 .NET 适配器调用Visual Studio 2010创建的 .NET 汇编程序
当你安装 Visual Studio 2010的时候,你也将同时安装 .NET Framework 4.0,它使用了一种比 .NET Framework 2.0, 3.0, 和3.5 (.NET Framework 2.0, 3.0, and 3.5 都使用相同的 CLR 版本)更新的 Common Language Runtime (CLR)。TestStand 4.2.1 以及早期版本装载了 .NET Framework 2.0,并且不支持装载 .NET Framework 4.0,因此在TestStand 4.2.1及早期版本中调用 .NET Framework 4.0 汇编程序是不支持的。

跟以前版本的 Visual Studio相似,Visual Studio 2010 允许用户以某个特定版本的 .NET Framework 为目标来编译汇编程序。因此,你可以仍然使用 Visual Studio 2010 来编译你的汇编程序只要你是以 .NET Framework 2.0, 3.0 or 3.5为目标。想知道怎样改变目标framework的版本的指令,请参考 How to: Target a Specific .NET Framework Version or Profile MSDN 文章。

如果你在Visual Studio 2010中打开一个旧的 .NET 项目,转换进程将自动使已转换的项目保留旧项目的原始目标 framework 版本。例如,如果你在Visual Studio 2010中打开一个 Visual Studio 2005 项目,被转换的项目将在目标framework 对话框中指定 .NET Framework 2.0 。

对于新的 .NET 项目,你可以在项目创建的时候参照下图指定目标 framework 版本。

 


使用 .NET 适配器调用Visual Studio 2010 编译的 VC++ CLR 汇编程序
与以上描述的 .NET 汇编编程情景相似,在TestStand 4.2.1及早期版本中调用 .NET Framework 4.0 C++ CLR 汇编程序是不支持的。因此,C++ CLR DLLs必须被配置成以以 .NET Framework 2.0, 3.0, or 3.5为目标。与 .NET 项目不同,如果你在Visual Studio 2010中打开一个旧的 CLR 项目,转换进程将自动配置该被转换的项目以 .NET Framework 4.0为目标。此外,Visual Studio 2010 不支持在IDE中重新为已存在的 C++ 应用程序设置目标。

当你在Visual Studio 2010中打开一个旧的 C++ 项目时,转换进程将以新的.vcxproj 文件格式创建一个新的项目文件,你可以编辑它让它以不同的 framework 版本为目标。想知道怎样改变已存在 Visual Studio 2010 C++ 应用程序的目标framework版本的指令,请参考  Framework and References, Common Properties, <Projectname> Property Pages Dialog Box MSDN 文章中的Targeted Framework 部分。

与 .NET 项目类似,你可以如以下创建项目时为新的C++ CLR 项目指定目标 framework 版本:




使用 C/C++ 适配器调用 Visual Studio 2010编译的托管VC++ DLLs
使用TestStand 4.2.1 C/C++  适配器调用Visual Studio 2010 编译的托管 VC++ 代码应该跟Visual Studio 2008 以及以前版本的 VC++ 代码模块表现相同。

创建/编辑 代码
对于 创建/编辑 代码 特性, TestStand 4.2.1 要求安装Measurement Studio。 Measurement Studio 2009 及以前版本不支持而且不兼容 Visual Studio 2010。  如果你安装了一个较老版本的 Visual Studio, 并且安装该版本的 Measurement Studio,那么你将可以尝试使用Visual Studio 2010的 创建/编辑 代码 特性。

创建 代码
在 TestStand 4.2.1中创建 代码特性是不支持 Visual Studio 2010 的任何项目的。

编辑 代码
在TestStand 4.2.1项目中使用 Visual Studio 2010 C#.NET 和 VB.NET的 编辑 代码功能,应该跟Visual Studio 2008 以及以前版本的 C#.NET 和 VB.NET 项目相同。

在 TestStand 4.2.1中使用 Visual Studio 2010 C++ 项目的编辑 代码功能是不支持的。 Visual Studio 2010 介绍了一种C++ 项目(.vcxproj)中的新文件格式 但是 TestStand 4.2.1 版本是不支持的。

调试 Visual Studio 2010 代码模块
TestStand 4.2.1 单步执行特性是不支持 Visual Studio 2010的。  如果你企图单步执行Visual Studio 2010中的一个 .NET 或者 C/C++ 代码模块,你将会得到以下错误信息:



为了在 Visual Studio 2010中调试你的代码模块,你将必须打开 Visual Studio 2010 并且依附于 TestStand 4.2.1 进程。 这个过程将根据你是否以下所描述的调用 .NET 汇编或者托管的 DLL而有所不同。

使用 .NET 适配器来调试 .NET Framework 2.0, 3.0, 或者 3.5 代码模块
在 TestStand 已经打开的情况下,启动Visual Studio 2010 中的 C#.NET, VB.NET, 或者 C++ CLR 项目。  选择 Debug»Attach to Process... (你也可以选择 Tools»Attach to Process...)。 在 Attach to Process 窗口, 观察 TestStand 4.2.1 进程正在运行的实例,(例如, 序列编辑器将是 SeqEdit.exe, 默认情况下交换界面将是 TestExec.exe) 并且选中它。  在Attach to  选项中选择 Select... 按钮。  在选择代码类型时, 你必须保证你已经选择了 Managed (v2.0, v1.1, v1.0)。



在选择代码类型窗口中点击 OK 按钮,然后在Attach to Process 窗口中点击 Attach ,在你的代码中你想调试的地方放置一个断点然后运行 TestStand 4.2.1 的序列。 当TestStand调用这段代码的时候 Visual Studio 将会自动在断点处暂停。  在单步跳出到TestStand继续执行之前你可以使用 Visual Studio 调试工具来调试你的代码模块。

使用 C/C++ 适配器调试托管 C++ 代码模块es
为了调试托管 C++ 代码模块,请参照本文档中 使用 .NET 适配器调试 .NET Framework 2.0, 3.0, 或者 3.5 代码模块 中提供的相同步骤,但是需要在选择代码类型窗口中选择 Native 。



版本选择器
TestStand 4.2.1 版本选择器 成功地把 TestStand 工具箱安装到 Visual Studio 2010。  因此,当你打开一个包含Windows 表格的 C#.NET 或者 VB.NET 项目时,这个工具箱将会已经拥有 TestStand UI 控制界面供你使用。

Visual Studio 2010 使用一个新的机制用来存储 VC++ 的包含路径。因此, TestStand 4.2.1 版本选择器不会安装 VC++ 包含路径到 Visual Studio 2010。



相关链接: How to: Target a Specific .NET Framework Version or Profile
Framework and References, Common Properties, <Projectname> Property Pages Dialog Box
Knowledgebase 3JSBDH1J: How to Step Into a Visual Studio .NET Assembly or C++ DLL from TestStand
TestStand 2010 Reference Manual


附件:





报告日期: 05/06/2010
最近更新: 09/14/2011
文档编号: 595FQJPI