The reason that this is happening is that the Host VI is trying to redeploy the Shared Variable Library to the target before it connects to it. In order for this deployment to be successful, it has to abort execution of the RTexe. Once it has connected, since the RTexe was aborted, it won't run. This is why redeploying the application works.
Since the library only needs to be deployed once, we can connect to the RTexe without redeploying the library by using any of the methods noted above. The reason this works is as follows:
- In Option 1, by disabling auto-deploy, the Host VI will just connect to the Shared Variable Library that already exists on the target. If changes to the library need to be made, then it will have to be manually deployed once again.
- In Option 2 & 3, since we are running the Host VI outside of the project containing the Shared Variable Library, it won't try to redeploy the library.
- For Option 4, having two separate libraries removes the dependency of the host VI on the existence of the remote library. If the remote library is non-existent, the Host VI will return an error but will not ask to deploy variables to the remote machine