diff --git a/Plugins/HelloWorldCSharp/App.config b/Plugins/HelloWorldCSharp/App.config
new file mode 100644
index 0000000000..88fa4027bd
--- /dev/null
+++ b/Plugins/HelloWorldCSharp/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Plugins/HelloWorldCSharp/HelloWorldCSharp.csproj b/Plugins/HelloWorldCSharp/HelloWorldCSharp.csproj
new file mode 100644
index 0000000000..cfa2f977f2
--- /dev/null
+++ b/Plugins/HelloWorldCSharp/HelloWorldCSharp.csproj
@@ -0,0 +1,74 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}
+ Library
+ Properties
+ HelloWorldCSharp
+ HelloWorldCSharp
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\..\Output\Debug\Plugins\HelloWorldCSharp\
+ DEBUG;TRACE
+ prompt
+ 4
+ false
+
+
+ AnyCPU
+ pdbonly
+ true
+ ..\..\Output\Release\Plugins\HelloWorldCSharp\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+ {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}
+ Wox.Plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/Plugins/HelloWorldCSharp/Main.cs b/Plugins/HelloWorldCSharp/Main.cs
new file mode 100644
index 0000000000..27dce731d7
--- /dev/null
+++ b/Plugins/HelloWorldCSharp/Main.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Wox.Plugin;
+
+namespace HelloWorldCSharp
+{
+ class Main : IPlugin
+ {
+ public List Query(Query query)
+ {
+ var result = new Result
+ {
+ Title = "Hello Word from CSharp",
+ SubTitle = $"Query: {query.Search}",
+ IcoPath = "app.png"
+ };
+ return new List {result};
+ }
+
+ public void Init(PluginInitContext context)
+ {
+
+ }
+ }
+}
diff --git a/Plugins/HelloWorldCSharp/Properties/AssemblyInfo.cs b/Plugins/HelloWorldCSharp/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..39677ff22d
--- /dev/null
+++ b/Plugins/HelloWorldCSharp/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+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("HelloWorldCSharp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HelloWorldCSharp")]
+[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("03ffa443-5f50-48d5-8869-f3df316803aa")]
+
+// 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 Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Plugins/HelloWorldCSharp/plugin.json b/Plugins/HelloWorldCSharp/plugin.json
new file mode 100644
index 0000000000..c50928684e
--- /dev/null
+++ b/Plugins/HelloWorldCSharp/plugin.json
@@ -0,0 +1,12 @@
+{
+ "ID":"CEA0FDFC6D3B4085823D60DC76F28844",
+ "ActionKeyword":"hc",
+ "Name":"Hello World CSharp",
+ "Description":"Hello World CSharp",
+ "Author":"happlebao",
+ "Version":"1.0.0",
+ "Language":"csharp",
+ "Website":"https://github.com/Wox-launcher/Wox",
+ "ExecuteFileName":"HelloWorldCSharp.dll",
+ "IcoPath":"app.png"
+}
\ No newline at end of file
diff --git a/Wox.sln b/Wox.sln
index aa37b5d889..c16ef430e0 100644
--- a/Wox.sln
+++ b/Wox.sln
@@ -85,6 +85,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PreSolutionBuild", "PreSolutionBuild\PreSolutionBuild.vcxproj", "{88731DA8-C020-476E-B79A-3ADEF65ACA9F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorldCSharp", "Plugins\HelloWorldCSharp\HelloWorldCSharp.csproj", "{03FFA443-5F50-48D5-8869-F3DF316803AA}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -324,6 +326,18 @@ Global
{88731DA8-C020-476E-B79A-3ADEF65ACA9F}.Release|x64.Build.0 = Release|x64
{88731DA8-C020-476E-B79A-3ADEF65ACA9F}.Release|x86.ActiveCfg = Release|Win32
{88731DA8-C020-476E-B79A-3ADEF65ACA9F}.Release|x86.Build.0 = Release|Win32
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|x64.Build.0 = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Debug|x86.Build.0 = Debug|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|x64.ActiveCfg = Release|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|x64.Build.0 = Release|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|x86.ActiveCfg = Release|Any CPU
+ {03FFA443-5F50-48D5-8869-F3DF316803AA}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -341,5 +355,6 @@ Global
{A3DCCBCA-ACC1-421D-B16E-210896234C26} = {3A73F5A7-0335-40D8-BF7C-F20BE5D0BA87}
{F35190AA-4758-4D9E-A193-E3BDF6AD3567} = {3A73F5A7-0335-40D8-BF7C-F20BE5D0BA87}
{230AE83F-E92E-4E69-8355-426B305DA9C0} = {3A73F5A7-0335-40D8-BF7C-F20BE5D0BA87}
+ {03FFA443-5F50-48D5-8869-F3DF316803AA} = {3A73F5A7-0335-40D8-BF7C-F20BE5D0BA87}
EndGlobalSection
EndGlobal