We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

IVsSolution.AddVirtualProjectEx Method

Assigns the original GUID to the project when it is recreated the next time the solution is opened.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

int AddVirtualProjectEx(
	IVsHierarchy pHierarchy,
	uint grfAddVPFlags,
	ref Guid rguidProjectID


Type: Microsoft.VisualStudio.Shell.Interop.IVsHierarchy
[in] Pointer to a hierarchy object.
Type: System.UInt32
[in] Determines whether to add a new virtual project to the Solution Explorer. For a list of grfAddVPFlags, see __VSADDVPFLAGS.
Type: System.Guid
[in] Unique project identifier (GUID).

Return Value

Type: System.Int32
If the method succeeds, it returns S_OK. If it fails, it returns an error code.

COM Signature

From vsshell.idl:

HRESULT IVsSolution::AddVirtualProjectEx(
   [in] IVsHierarchy *pHierarchy,
   [in] VSADDVPFLAGS grfAddVPFlags,
   [in] REFGUID rguidProjectID

This method is the same as AddVirtualProject except that the caller can specify a per-instance GUID project identifier (rGUIDProjectID) for this project to enable GetProjectOfGuid and GetProjectOfProjref to function properly. The caller is responsible for persisting this instance GUID and passing the same GUID when reloading the same project instance.


The GUID project identifier is not the same as the GUID project type. CoCreateGuid() is useful for creating new GUIDs.