LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

The external model has changed. You must relink or refresh before this function can execute.

Good day!

 

I got the following error (code: -2366) when trying to run a executable built from LabVIEW 2013 on a target Windows machine with only LabVIEW run-time 2103 32-bit installed.

 

"External Model in VIname.vi/Control & Simulation Loop/VI <append>The external model has changed. You must relink or refresh before this function can execute.The external model has changed. You must relink or refresh before this function can execute." 

 

The exe file works fine on the systems with full LabVIEW installed, but not on the ones having only run-time libraries. Dependency walker doesn't help to much. 

 

Does anyone know what caused the issue? BTW, the VI needs 3rd-party dlls.

 

Thanks for your time and all replies are welcomed.

 

 

 

Regards,

 

Yan

0 Kudos
Message 1 of 6
(2,534 Views)

Hi Yan,

 

It sounds like you may be missing some necessary toolkits or dlls on the computer you are deploying to. Did you build a installer for your executable to bring it over to the other computer? If you have not, or you are not familiar with the process there are two help articles I think would be of great use to you.

 

1) Building an Installer - http://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/build_installer/

2) Including Additional National Instruments Installers in an Installer Build - http://zone.ni.com/reference/en-XX/help/371361K-01/lvhowto/add_installers_to_build/ 

 

Give these a look and let us know if you are already building an installer and this is not the issue.

Miles G.
National Instruments
Staff Applications Engineering Specialist
0 Kudos
Message 2 of 6
(2,487 Views)

Hi,

 

Thanks for the reply. Actually I have found the problem.

 

In my VI, I have Control Design and Simulation Loop, in which I have a VI that call functions from a DLL that I put in LabVIEW resource folder. After building the EXE file from this VI, the DLL file is copied to the data folder.

 

But the problem is that when I run the EXE file, I have to make sure the DLL exists not only in the data folder, but also in the LabVIEW resource folder (E:\Program Files (x86)\National Instruments\LabVIEW 2013\resource), meaning when I run the EXE file on another machine with only run-time library installed, I have to manually create the whole path, and copy my DLL in.

 

I checked the EXE file and found the following folders, copied DLL to everyone of them, not working either...

National Instruments\Shared\LabVIEW Run-Time    

c:\Program Files\National Instruments\Shared\LabVIEW Run-Time  

%ProgramFiles%\National Instruments\Shared\LabVIEW Run-Time

SOFTWARE\National Instruments\LabVIEW 

 

 

BTW I am using LabVIEW 2013 patch 2.

 

 

Thanks

0 Kudos
Message 3 of 6
(2,476 Views)

Sorry I'm a little confused.  Is your problem solved, or are you still having issues? You say you found the problem, but you later say things aren't working. 

Miles G.
National Instruments
Staff Applications Engineering Specialist
0 Kudos
Message 4 of 6
(2,457 Views)

I found the problem, but I don't have a solution for it yet...

 

 

0 Kudos
Message 5 of 6
(2,454 Views)

How are you referencing this DLL in your VI? If you could provide some detail on this it's possible there may be another way to reference it that will not require this full path.

 

Another option is building an installer for your .exe. In the installer properties, under the destinations category, you can click on the Add absolute path button at the bottom of the window. This should allow you to build that path as part of the installer. 

Miles G.
National Instruments
Staff Applications Engineering Specialist
0 Kudos
Message 6 of 6
(2,433 Views)