diff --git a/samples/sample-complete.xml b/samples/sample-complete.xml
index ec36cd3..c8ec91f 100644
--- a/samples/sample-complete.xml
+++ b/samples/sample-complete.xml
@@ -39,10 +39,16 @@ All options in other sections are optional
myapp
+
+
+
+
%BASE%\myExecutable.exe
diff --git a/samples/sample-minimal.xml b/samples/sample-minimal.xml
index 929e751..87d9f3d 100644
--- a/samples/sample-minimal.xml
+++ b/samples/sample-minimal.xml
@@ -36,10 +36,6 @@
myapp
-
- MyApp Service (powered by WinSW)
-
- This service is a service created from a minimal configuration
diff --git a/src/WinSW.Core/Configuration/DefaultSettings.cs b/src/WinSW.Core/Configuration/DefaultSettings.cs
index 9878291..470e2cb 100644
--- a/src/WinSW.Core/Configuration/DefaultSettings.cs
+++ b/src/WinSW.Core/Configuration/DefaultSettings.cs
@@ -14,9 +14,9 @@ namespace WinSW.Configuration
{
public string Id => throw new InvalidOperationException(nameof(this.Id) + " must be specified.");
- public string Caption => throw new InvalidOperationException(nameof(this.Caption) + " must be specified.");
+ public string Caption => string.Empty;
- public string Description => throw new InvalidOperationException(nameof(this.Description) + " must be specified.");
+ public string Description => string.Empty;
public string Executable => throw new InvalidOperationException(nameof(this.Executable) + " must be specified.");
diff --git a/src/WinSW.Core/ServiceDescriptor.cs b/src/WinSW.Core/ServiceDescriptor.cs
index 14ca121..fd92ac6 100644
--- a/src/WinSW.Core/ServiceDescriptor.cs
+++ b/src/WinSW.Core/ServiceDescriptor.cs
@@ -557,9 +557,9 @@ namespace WinSW
public string Id => this.SingleElement("id");
- public string Caption => this.SingleElement("name");
+ public string Caption => this.SingleElement("name", true) ?? Defaults.Caption;
- public string Description => this.SingleElement("description");
+ public string Description => this.SingleElement("description", true) ?? Defaults.Description;
///
/// Start mode of the Service
diff --git a/src/WinSW.Tests/Configuration/ExamplesTest.cs b/src/WinSW.Tests/Configuration/ExamplesTest.cs
index e76d60a..7e102fb 100644
--- a/src/WinSW.Tests/Configuration/ExamplesTest.cs
+++ b/src/WinSW.Tests/Configuration/ExamplesTest.cs
@@ -18,8 +18,6 @@ namespace WinSW.Tests.Configuration
ServiceDescriptor desc = Load("complete");
Assert.Equal("myapp", desc.Id);
- Assert.Equal("MyApp Service (powered by WinSW)", desc.Caption);
- Assert.Equal("This service is a service created from a sample configuration", desc.Description);
Assert.Equal("%BASE%\\myExecutable.exe", desc.Executable);
ServiceDescriptorAssert.AssertAllOptionalPropertiesAreDefault(desc);
@@ -31,8 +29,6 @@ namespace WinSW.Tests.Configuration
ServiceDescriptor desc = Load("minimal");
Assert.Equal("myapp", desc.Id);
- Assert.Equal("MyApp Service (powered by WinSW)", desc.Caption);
- Assert.Equal("This service is a service created from a minimal configuration", desc.Description);
Assert.Equal("%BASE%\\myExecutable.exe", desc.Executable);
ServiceDescriptorAssert.AssertAllOptionalPropertiesAreDefault(desc);
diff --git a/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs b/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs
index e7940e6..ed6921e 100644
--- a/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs
+++ b/src/WinSW.Tests/Util/ServiceDescriptorAssert.cs
@@ -54,8 +54,6 @@ namespace WinSW.Tests.Util
{
var properties = AllProperties;
properties.Remove("Id");
- properties.Remove("Caption");
- properties.Remove("Description");
properties.Remove("Executable");
return properties;
}
diff --git a/src/WinSW/Program.cs b/src/WinSW/Program.cs
index 1e20936..06f5497 100644
--- a/src/WinSW/Program.cs
+++ b/src/WinSW/Program.cs
@@ -378,7 +378,11 @@ namespace WinSW
username,
password);
- sc.SetDescription(descriptor.Description);
+ string description = descriptor.Description;
+ if (description.Length != 0)
+ {
+ sc.SetDescription(description);
+ }
SC_ACTION[] actions = descriptor.FailureActions;
if (actions.Length > 0)