Skip to content

Commit 73b80ab

Browse files
Merge pull request #551 from reduckted/feature/save-solution
Added `Solution.SaveAsync()` method.
2 parents dd035d5 + 26231b6 commit 73b80ab

File tree

1 file changed

+15
-1
lines changed
  • src/toolkit/Community.VisualStudio.Toolkit.Shared/Solution

1 file changed

+15
-1
lines changed

src/toolkit/Community.VisualStudio.Toolkit.Shared/Solution/Solution.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
using System;
1+
using System;
22
using System.Runtime.InteropServices;
33
using System.Threading.Tasks;
44
using Microsoft.VisualStudio;
55
using Microsoft.VisualStudio.Shell;
66
using Microsoft.VisualStudio.Shell.Interop;
7+
using Task = System.Threading.Tasks.Task;
78

89

910
namespace Community.VisualStudio.Toolkit
@@ -46,5 +47,18 @@ internal Solution(IVsHierarchyItem item, SolutionItemType type) : base(item, typ
4647

4748
return null;
4849
}
50+
51+
/// <summary>
52+
/// Save the solution if it's dirty.
53+
/// </summary>
54+
public async Task SaveAsync()
55+
{
56+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
57+
58+
IVsSolution solution = await VS.Services.GetSolutionAsync();
59+
int hr = solution.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_SaveIfDirty, null, 0);
60+
61+
ErrorHandler.ThrowOnFailure(hr);
62+
}
4963
}
5064
}

0 commit comments

Comments
 (0)