diff --git a/data/templates/file/CSharp/CSharp.WcfService.xft b/data/templates/file/CSharp/CSharp.WcfService.xft
new file mode 100644
index 0000000000..850e5f2a2d
--- /dev/null
+++ b/data/templates/file/CSharp/CSharp.WcfService.xft
@@ -0,0 +1,52 @@
+
+
+
+
+
+ WCF Service
+
+
+
+
+]]>
+
+
+
+ /// Description of ${ClassName}.
+ ///
+ public class ${ClassName} : I${ClassName}
+ {
+ public void MyOperation()
+ {
+ // implement the operation
+ }
+ }
+}
+]]>
+
+
+
\ No newline at end of file
diff --git a/data/templates/file/VB/VB.WcfService.xft b/data/templates/file/VB/VB.WcfService.xft
new file mode 100644
index 0000000000..a0d4a9fe78
--- /dev/null
+++ b/data/templates/file/VB/VB.WcfService.xft
@@ -0,0 +1,47 @@
+
+
+
+
+
+ WCF Service
+
+
+
+
+]]>
+
+
+ _
+Public Interface I${ClassName}
+ _
+ Sub MyOperation()
+End Interface
+
+'''
+''' Description of ${ClassName}.
+'''
+Public Class ${ClassName}
+ Implements I${ClassName}
+ Public Sub MyOperation() Implements I${ClassName}.MyOperation
+ ' implement the operation
+ End Sub
+End Class
+]]>
+
+
+
\ No newline at end of file
diff --git a/data/templates/project/CSharp/CSharp.WcfServiceProject.xpt b/data/templates/project/CSharp/CSharp.WcfServiceProject.xpt
new file mode 100644
index 0000000000..fe086c77db
--- /dev/null
+++ b/data/templates/project/CSharp/CSharp.WcfServiceProject.xpt
@@ -0,0 +1,112 @@
+
+
+
+
+
+ WCF Service
+ C#
+ WCF
+ C#.Project.Form
+ WCF Service
+ v3.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+ {3D9AD99F-2412-4246-B90B-4EAA41C64699};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Properties
+
+
+
+ bin\
+
+
+
+ bin\
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
diff --git a/data/templates/project/VB/VB.WcfServiceProject.xpt b/data/templates/project/VB/VB.WcfServiceProject.xpt
new file mode 100644
index 0000000000..07cfbf24e4
--- /dev/null
+++ b/data/templates/project/VB/VB.WcfServiceProject.xpt
@@ -0,0 +1,104 @@
+
+
+
+
+
+ WCF Service
+ VB
+ WCF
+ VBNet.Project.Form
+ WCF Service
+ v3.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+ {3D9AD99F-2412-4246-B90B-4EAA41C64699};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Properties
+
+
+
+ bin\
+
+
+
+ bin\
+
+
+
+
+
+
+]]>
+
+
+ _
+Public Interface ICalculator
+ _
+ Function Add(n1 As Double, n2 As Double) As Double
+ _
+ Function Subtract(n1 As Double, n2 As Double) As Double
+ _
+ Function Multiply(n1 As Double, n2 As Double) As Double
+ _
+ Function Divide(n1 As Double, n2 As Double) As Double
+End Interface
+
+Public Class ServiceCalculator
+ Implements ICalculator
+ Public Function Add(n1 As Double, n2 As Double) As Double Implements ICalculator.Add
+ Return n1 + n2
+ End Function
+ Public Function Subtract(n1 As Double, n2 As Double) As Double Implements ICalculator.Subtract
+ Return n1 - n2
+ End Function
+ Public Function Multiply(n1 As Double, n2 As Double) As Double Implements ICalculator.Multiply
+ Return n1 * n2
+ End Function
+ Public Function Divide(n1 As Double, n2 As Double) As Double Implements ICalculator.Divide
+ Return n1 / n2
+ End Function
+End Class
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
diff --git a/src/Setup/Files.wxs b/src/Setup/Files.wxs
index 5471ba5af9..ad1058a5fb 100644
--- a/src/Setup/Files.wxs
+++ b/src/Setup/Files.wxs
@@ -730,6 +730,9 @@
+
+
+
@@ -801,6 +804,9 @@
+
+
+
@@ -842,6 +848,9 @@
+
+
+
@@ -880,6 +889,9 @@
+
+
+
diff --git a/src/Setup/Setup.wxs b/src/Setup/Setup.wxs
index 151c1bda84..b7f8bd725e 100644
--- a/src/Setup/Setup.wxs
+++ b/src/Setup/Setup.wxs
@@ -313,6 +313,12 @@
+
+
+
+
+
+