Error: System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.. at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, ref Boolean pfNeedsRelease) at ESRI.ArcGIS.UCOMIArcGISVersion.GetActiveVersion(ref esriProductCode code, ref String ver, ref String path) at ESRI.ArcGIS.RuntimeManager.get_ActiveRuntime() at UnitTestHelpers.LicenseInitializer.InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics) in LicenseInitializer.Designer.cs: line 50
Solved! Go to Solution.
/// <summary> /// ArcObject License Helper for initializing the license. Wrapped to this helper class because MSTest always creates a new instance of /// a test class for EACH TEST that it runs and LicenseInitializer must only be initialized ONCE. /// </summary> public static class LicenseHelper { private static LicenseInitializer licenseInitializer = null; /// <summary> /// Initialize the ArcObjects license. Must be run before any usage of AO objects. /// </summary> public static void InitializeLicense() { if (licenseInitializer != null) { return; } licenseInitializer = new LicenseInitializer(); licenseInitializer.InitializeApplication(new[] {esriLicenseProductCode.esriLicenseProductCodeArcView}, new[] {esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability}); } /// <summary> /// Shutdown and release the ArcObjects license. AO objects cannot be handled after this method is called. /// </summary> public static void ShutdownApplication() { if (licenseInitializer != null) { licenseInitializer.ShutdownApplication(); } } }
LicenseHelper.InitializeLicense();
LicenseHelper.ShutdownApplication();
/// <summary> /// ArcObject License Helper for initializing the license. Wrapped to this helper class because MSTest always creates a new instance of /// a test class for EACH TEST that it runs and LicenseInitializer must only be initialized ONCE. /// </summary> public static class LicenseHelper { private static LicenseInitializer licenseInitializer = null; /// <summary> /// Initialize the ArcObjects license. Must be run before any usage of AO objects. /// </summary> public static void InitializeLicense() { if (licenseInitializer != null) { return; } licenseInitializer = new LicenseInitializer(); licenseInitializer.InitializeApplication(new[] {esriLicenseProductCode.esriLicenseProductCodeArcView}, new[] {esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability}); } /// <summary> /// Shutdown and release the ArcObjects license. AO objects cannot be handled after this method is called. /// </summary> public static void ShutdownApplication() { if (licenseInitializer != null) { licenseInitializer.ShutdownApplication(); } } }
LicenseHelper.InitializeLicense();
LicenseHelper.ShutdownApplication();