First some tips from Scott Hanselman to get the look-and-feel back.
Next to replace the pre- and postbuild macro with an add-in. The template takes care of the plumbing and running/debugging will make it available for use.
Make sure to save the BuildEvents and SolutionEvents in a classlevel variable or the events will not work.
private BuildEvents _buildEvents; private SolutionEvents _solutionEvents; public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; // save the SolutionEvents object to get events working _solutionEvents = _applicationObject.Events.SolutionEvents; _solutionEvents.Opened += _solutionEvents_Opened; // save the BuildEvents object to get events working _buildEvents = _applicationObject.Events.BuildEvents; _buildEvents.OnBuildBegin += BuildEvents_OnBuildBegin; _buildEvents.OnBuildDone += BuildEvents_OnBuildDone; }
Open your solution and everything just works. Except for things that don’t because they’re to old like Silverlight 3. But there is always the round tripping feature.