diff --git a/VsDingExtension.sln b/VsDingExtension.sln
index e6aab38..34e98b7 100644
--- a/VsDingExtension.sln
+++ b/VsDingExtension.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30723.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.27004.2009
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5BD9D4DB-8683-4698-8D24-01EE7306F73A}"
ProjectSection(SolutionItems) = preProject
@@ -10,32 +10,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
UnitTests.testsettings = UnitTests.testsettings
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsDingExtensionProject", "VsDingExtensionProject\VsDingExtensionProject.csproj", "{3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsDingExtensionFor2012", "VsDingExtensionFor2012\VsDingExtensionFor2012.csproj", "{F37A5870-9786-4196-A3BE-51FEC6155623}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleTestProject", "SampleTestProject\SampleTestProject.csproj", "{3A315AD2-E21E-4FC6-A601-795989A45514}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VsDingExtensionFor2017", "VsDingExtensionFor2017\VsDingExtensionFor2017.csproj", "{45953335-41AC-47BB-ACEF-3555FD7F5139}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3BEC1E8B-59C5-439E-AE97-8FF4B3E6B0C1}.Release|Any CPU.Build.0 = Release|Any CPU
- {F37A5870-9786-4196-A3BE-51FEC6155623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F37A5870-9786-4196-A3BE-51FEC6155623}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F37A5870-9786-4196-A3BE-51FEC6155623}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F37A5870-9786-4196-A3BE-51FEC6155623}.Release|Any CPU.Build.0 = Release|Any CPU
{3A315AD2-E21E-4FC6-A601-795989A45514}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A315AD2-E21E-4FC6-A601-795989A45514}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A315AD2-E21E-4FC6-A601-795989A45514}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A315AD2-E21E-4FC6-A601-795989A45514}.Release|Any CPU.Build.0 = Release|Any CPU
+ {45953335-41AC-47BB-ACEF-3555FD7F5139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {45953335-41AC-47BB-ACEF-3555FD7F5139}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {45953335-41AC-47BB-ACEF-3555FD7F5139}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {45953335-41AC-47BB-ACEF-3555FD7F5139}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {8F1E1F54-C5F0-477C-90FF-BA5D0C56292D}
+ EndGlobalSection
EndGlobal
diff --git a/VsDingExtensionFor2017/Properties/AssemblyInfo.cs b/VsDingExtensionFor2017/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f795072
--- /dev/null
+++ b/VsDingExtensionFor2017/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("VsDingExtensionFor2012")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Bing")]
+[assembly: AssemblyProduct("VsDingExtensionFor2012")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+[assembly: CLSCompliant(false)]
+[assembly: NeutralResourcesLanguage("en-US")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+
+
diff --git a/VsDingExtensionFor2017/ReleaseNotes.txt b/VsDingExtensionFor2017/ReleaseNotes.txt
new file mode 100644
index 0000000..27cf99b
--- /dev/null
+++ b/VsDingExtensionFor2017/ReleaseNotes.txt
@@ -0,0 +1,4 @@
+Version 1.4:
+* Added options dialog (Tools->Options->Ding). Now it is possible to enable/disable what sounds to play. Thanks to https://github.com/dannoh
+* Added option to play sounds only if Visual Studio in background. Thanks to https://github.com/dannoh
+* Support for Visual studio 2015
diff --git a/VsDingExtensionFor2017/VsDingExtensionFor2017.csproj b/VsDingExtensionFor2017/VsDingExtensionFor2017.csproj
new file mode 100644
index 0000000..2965fd5
--- /dev/null
+++ b/VsDingExtensionFor2017/VsDingExtensionFor2017.csproj
@@ -0,0 +1,219 @@
+
+
+
+ 15.0
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 4.0
+ false
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ true
+
+
+
+ ..\VsDingExtensionProject\Resources\speaker.ico
+
+
+
+ Debug
+ AnyCPU
+ 2.0
+ {45953335-41AC-47BB-ACEF-3555FD7F5139}
+ {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Properties
+ VitaliiGanzha.VsDingExtension
+ VsDingExtension
+ True
+ ..\VsDingExtensionProject\Key.snk
+ v4.6
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ true
+
+
+
+ False
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+
+
+
+ True
+
+
+
+
+ $(DevEnvDir)\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestWindow.Core.dll
+
+
+ $(DevEnvDir)\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestWindow.dll
+
+
+
+
+
+
+
+
+
+
+
+
+ $(DevEnvDir)\PublicAssemblies\Microsoft.VisualStudio.ComponentModelHost.dll
+
+
+ $(DevEnvDir)\CommonExtensions\Microsoft\TestWindow\Microsoft.VisualStudio.TestWindow.Interfaces.dll
+
+
+
+
+ {1CBA492E-7263-47BB-87FE-639000619B15}
+ 8
+ 0
+ 0
+ primary
+ False
+ False
+
+
+ {00020430-0000-0000-C000-000000000046}
+ 2
+ 0
+ 0
+ primary
+ False
+ False
+
+
+
+
+
+
+ OptionsDialog.cs
+ Component
+
+
+ Players.cs
+
+
+
+
+ SingleSoundSelectControl.cs
+ UserControl
+
+
+ SingleSoundSelectControl.Designer.cs
+
+
+ SoundSelectControl.cs
+ UserControl
+
+
+ SoundSelectControl.Designer.cs
+
+
+ SoundsSelectOptionsPage.cs
+ Component
+
+
+
+ WinApiHelper.cs
+
+
+
+
+
+ Designer
+
+
+
+
+
+ SingleSoundSelectControl.resx
+
+
+ SoundSelectControl.resx
+
+
+ SoundsSelectOptionsPage.resx
+
+
+
+
+
+
+
+
+ Always
+ true
+
+
+
+
+ Always
+ true
+
+
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/VsDingExtensionFor2017/source.extension.vsixmanifest b/VsDingExtensionFor2017/source.extension.vsixmanifest
new file mode 100644
index 0000000..469cdea
--- /dev/null
+++ b/VsDingExtensionFor2017/source.extension.vsixmanifest
@@ -0,0 +1,36 @@
+
+
+
+
+ Visual Studio Ding extension for VS 2017
+ This small extension will play notification sounds when following events occur:
+- Build Complete
+- Entering debugger mode (breakpoint hit, etc)
+- Unit tests finished to run
+
+Useful when working with big solutions or when build/test run/hitting a breakpoint takes a lot of time and developer can be distructed on other things while he waits.
+
+Just install it and it is ready to use!
+
+This is an open source project, join!
+
+Twitter: @GanzhaVitalii</Description>
+ https://github.com/thecoderok/vsdingextension
+ ReleaseNotes.txt
+ speaker2017.ico
+ Productivity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/VsDingExtensionFor2017/speaker2017.ico b/VsDingExtensionFor2017/speaker2017.ico
new file mode 100644
index 0000000..f7a3433
Binary files /dev/null and b/VsDingExtensionFor2017/speaker2017.ico differ
diff --git a/VsDingExtensionProject/Resources.Designer.cs b/VsDingExtensionProject/Resources.Designer.cs
index 45d43ae..057d8e8 100644
--- a/VsDingExtensionProject/Resources.Designer.cs
+++ b/VsDingExtensionProject/Resources.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.34209
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -19,7 +19,7 @@ namespace VitaliiGanzha.VsDingExtension {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
diff --git a/VsDingExtensionProject/VsDingExtensionProject.args.json b/VsDingExtensionProject/VsDingExtensionProject.args.json
new file mode 100644
index 0000000..d9e0a26
--- /dev/null
+++ b/VsDingExtensionProject/VsDingExtensionProject.args.json
@@ -0,0 +1,8 @@
+{
+ "DataCollection": [
+ {
+ "Id": "713ea57a-e182-4345-96c8-e67ff3c88bb8",
+ "Command": "/rootsuffix Exp"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/VsDingExtensionProject/VsDingExtensionProject.csproj b/VsDingExtensionProject/VsDingExtensionProject.csproj
index 475afb6..a0b92c3 100644
--- a/VsDingExtensionProject/VsDingExtensionProject.csproj
+++ b/VsDingExtensionProject/VsDingExtensionProject.csproj
@@ -1,13 +1,18 @@
- 12.0
+ 15.0
12.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
Program
$(DevEnvDir)\devenv.exe
/rootsuffix Exp
+
+
+
+
+ 12.0
speaker.ico
diff --git a/VsDingExtensionProject/VsDingExtensionProjectPackage.cs b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
index bdca97d..8d83c93 100644
--- a/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
+++ b/VsDingExtensionProject/VsDingExtensionProjectPackage.cs
@@ -153,7 +153,7 @@ namespace VitaliiGanzha.VsDingExtension
{
return true;
}
- return Options.IsBeepOnlyWhenVisualStudioIsInBackground && !WinApiHelper.ApplicationIsActivated();
+ return Options.IsBeepOnlyWhenVisualStudioIsInBackground && !NativeMethods.ApplicationIsActivated();
}
private void OperationStateOnStateChanged(object sender, OperationStateChangedEventArgs operationStateChangedEventArgs)
diff --git a/VsDingExtensionProject/WinApiHelper.cs b/VsDingExtensionProject/WinApiHelper.cs
index 7663240..a95440c 100644
--- a/VsDingExtensionProject/WinApiHelper.cs
+++ b/VsDingExtensionProject/WinApiHelper.cs
@@ -4,7 +4,7 @@ namespace VitaliiGanzha.VsDingExtension
using System.Diagnostics;
using System.Runtime.InteropServices;
- public static class WinApiHelper
+ public static class NativeMethods
{
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern IntPtr GetForegroundWindow();