新闻  |   论坛  |   博客  |   在线研讨会
LabView调用C#混合模式dll
luker | 2017-01-14 14:42:56    阅读:1177   发布文章

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

一、C#中的混合模式  

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

image

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

<?xml version ="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

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

image

右键打开会发现其内容就是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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客