forked from FortuneN/FineCodeCoverage
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProjectSaver.cs
More file actions
40 lines (36 loc) · 1.25 KB
/
ProjectSaver.cs
File metadata and controls
40 lines (36 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using Microsoft;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using System;
using System.ComponentModel.Composition;
namespace FineCodeCoverage.Core.MsTestPlatform.CodeCoverage
{
interface IProjectSaver
{
System.Threading.Tasks.Task SaveProjectAsync(IVsHierarchy projectHierarchy);
}
[Export(typeof(IProjectSaver))]
internal class ProjectSaver : IProjectSaver
{
private IServiceProvider serviceProvider;
[ImportingConstructor]
public ProjectSaver(
[Import(typeof(SVsServiceProvider))]
IServiceProvider serviceProvider
)
{
this.serviceProvider = serviceProvider;
}
public async System.Threading.Tasks.Task SaveProjectAsync(IVsHierarchy projectHierarchy)
{
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
var _solution = (IVsSolution)serviceProvider.GetService(typeof(SVsSolution));
Assumes.Present(_solution);
int hr = _solution.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_SaveIfDirty, projectHierarchy, 0);
if (ErrorHandler.Failed(hr))
{
}
}
}
}