Question

When creating a .NET-based Office add-in without VSTO, it's necessary (or at least desirable) to use a "COM shim" that loads the add-in, to provide process isolation so that the effect of any crash is limited to that add-in.

Microsoft (I think) provided the C++ shim project that I've been using, but now I'm belatedly upgrading my project from .NET 1.1 (yes, really) to .NET 4.

I'm getting a compiler warning from the shim project:

warning C4996: 'CorBindToRuntimeEx': This API has been deprecated. Refer to http://go.microsoft.com/fwlink/?LinkId=143720 for more details.

Unfortunately, this link doesn't actualy tell me how to fix it, and since I don't understand the original, I'm not in a position to do this.

FYI, the offending code looks like this:

// Load runtime into the process ...
hr = CorBindToRuntimeEx(
     // version, use default
    0,
     // flavor, use default
    0,
     // domain-neutral"ness" and gc settings
    STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN |  STARTUP_CONCURRENT_GC,
    CLSID_CorRuntimeHost, 
    IID_ICorRuntimeHost, 
    (PVOID*) &m_pHost);

Is there a new version of the shim project available? I've been unable to find one...

Was it helpful?

Solution

I found this, which is a solution for VS2010. It also covers how to set breakpoints in your add-in when using a shim, which is something I'd always found problematic.

I was able to convert this to a VS2012 project, too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top