在一些特定要求下,我們的C#可能需要制作dll給LabView進行調用,並且我們不能夠保證C#的程序是完全自己寫而不調用第三方的dll庫。很多時候我們需要使用諸如Sqlite.Net、AForge.Net之類的開源庫,此時我們發現我們需要使用混合模式去兼容這些由.NET 2.0版本運行時開發的開源庫。
如果是C#應用程序,那麼我們只要在工程對應項目中添加“應用程序配置文件”也就是app.config文件:
<?xml version ="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> </startup> </configuration>
然後我們會在編譯後的可執行文件中看到對應的配置文件,其名稱與最終生成的可執行文件類似:
<?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:當然,這個方式也存在問題,就是沒法直接進行調試。
希望對大家有幫助!也希望有更好方法的同行能夠指點一下!