LabView调用C#混合模式dll

在一些特定要求下,我们的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

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

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

转载于:https://www.cnblogs.com/sleepwalker/p/5065156.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值