二、LabView中配置混合模式

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

在一些特定要求下,我们的C#可能需要制作dll给LabView进行调用,并且我们不能够保证C#的程序是完全自己写而不调用第三方的dll库。很多时候我们需要使用诸如Sqlite.Net、AForge.Net之类的开源库,此时我们发现我们需要使用混合模式去兼容这些由.NET 2.0版本运行时开发的开源库。

一、C#中的混合模式如果是C#应用程序,那么我们只要在工程对应项目中添加“应用程序配置文件”也就是app.config文件:

[flash=500,400]http://s1.knowsky.com/20160211/ehmgelluk4q47.png[/flash]

然后在里面填入如下信息进行编译即可:

<?xmlversion ="1.0"encoding="utf-8"?>

<configuration>

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

</configuration>

然后我们会在编译后的可执行文件中看到对应的配置文件,其名称与最终生成的可执行文件类似:

[flash=500,400]http://s1.knowsky.com/20160211/eee5wqwp5qm47.png[/flash]

右键打开会发现其内容就是app.config里的内容。

二、LabView中配置混合模式我们需要在LabView中利用C#进行开发的dll,并且里面有第三方的库是.Net2.0 3.0以及3.5之类程序集,那么我们也需要要求配置混个模式。但是LabView中没有app.config,于是我们每次调用报错。解决方式就是模仿C#的程序,在LabView生成的exe可执行文件相同目录创建一个exe.config文件,然后填入配置信息。

具体操作如下:

1. 创建LabView工程

2. 在编写完程序后生成可执行文件:<应用程序名称>.exe

3. 在根目录下使用文本编辑器创建:<应用程序名称>.exe.config文件,然后复制内容:

<?xml version ="1.0"encoding="utf-8"?>

<configuration>

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

</configuration>

4. 将LabView调用的程序集都放在根目录(此操作防止一些程序集找不到其引用的其它程序集)

5. 运行LabView生成的可执行文件

原文见NI官网:Loading .NET 2.0, 3.0, and 3.5 Assemblies in LabVIEW

PS:当然,这个方式也存在问题,就是没法直接进行调试。

希望对大家有帮助!也希望有更好方法的同行能够指点一下!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航