在一些特定要求下,我們的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>
然后我們會在編譯后的可執行文件中看到對應的配置文件,其名稱與最終生成的可執行文件類似:
右鍵打開會發現其內容就是app.config里的內容。
我們需要在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:當然,這個方式也存在問題,就是沒法直接進行調試。
希望對大家有幫助!也希望有更好方法的同行能夠指點一下!
新聞熱點
疑難解答