包含.NET构造器节点的LabVIEW可执行程序启动很慢



主要软件:
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: N/A

问题: 我在LabVIEW中创建了一个可执行程序。当我启动这个可执行程序时,启动时间很长。我该怎样做来解决这个问题?

解答: 当使用任何经过代码签名认证的.NET 1.1和2.0程序集时,就会出现这个问题,这是由.NET通用语言运行时(CLR)用来验证代码签名认证程序集的机制所导致的。部分验证过程需要在线验证,通过下载一个证书吊销列表(CRL)来实现。执行这个验证可以保证已经签名的应用无法由不可用的证书来认证。

Windows需要15秒钟时间来下载验证程序集可靠性所需的文件。当Windows无法找到这些所需的文件时,就会产生这15秒钟的延时。这是由微软设置的,如果需要更细节的解释,请参阅KnowledgeBase 3HQAOI5B: Measurement Studio .NET Assemblies Take More Than 10 Seconds to Load at Run Time

尽管如此,还是有两种可能的变通方案来解决这个问题。第一种方案有两个主要步骤,并且对于Windows XP和以后版本应当都是可行的。第二种方案需要创建一个配置文件来禁用在线验证。

第一种变通方案:
步骤A:编辑注册表
  1. 进入Start»Run...,输入regedit,启动注册表编辑器。
  2. 在路径HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing中查找键值。
  3. 编辑State键值,将0x00023c00替换为0x00023e00。
步骤B:编辑组策略
  1. 进入Start»Run...,输入gpedit.msc。
  2. 浏览至Computer Configuration»Administrative Templates»System»Internet Communication Management»Internet Communication Settings.
  3. 在此设置下,双击Turn Off Automatic Root Certificates Update来启用该项。
  4. 启动命令行,输入gpupdate /force。




第二种变通方案:
步骤A:创建一个包含可用符号的配置文件
  1. 在LabVIEW目录中创建一个新的文本文件。通常这个目录为如下格式:C:\Program Files\National Instruments\LabVIEW 2011\。
  2. 在文件中添加如下符号:Add the following token to the file:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <runtime>
    <generatePublisherEvidence enabled="false"/>
    </runtime>
    </configuration>

  3. 将该文本文件保存为LabVIEW.exe.config

更多关于这些符号的信息可以在下面相关链接部分给出的微软MSDN中找到。一般建议来说,这种符号配置文件只在没有网络连接的情况下使用,因为这么做会执行证书被吊销的程序集。



相关链接: KnowledgeBase 3HQAOI5B: Measurement Studio .NET Assemblies Take More than 10 Seconds to Load at Run-Time
MSDN Reference: <generatePublisherEvidence> Element

附件:





报告日期: 11/12/2010
最近更新: 03/24/2013
文档编号: 5FBFOGGL