I see that I can hide my addin from being removed by the user in the OnConnection event
AddInEx.Visible = Valse;
But that function does not seem to run until I open a document.
So the user could disable the addin when the app is first started.
Is there a way to hide the addin initially?
Go to Solution.
Register your addin for the Application environment in addition to the document environments. That will ensure that OnConnection() will get called while SE is starting up.