diff --git a/src/NHibernate.Test/NHibernate.Test.csproj b/src/NHibernate.Test/NHibernate.Test.csproj
index 847d65739d3..5f128a63718 100644
--- a/src/NHibernate.Test/NHibernate.Test.csproj
+++ b/src/NHibernate.Test/NHibernate.Test.csproj
@@ -21,7 +21,7 @@
-
+
Always
diff --git a/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs b/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs
index 3dfad8f571a..6c72455c1d2 100644
--- a/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs
+++ b/src/NHibernate.Tool.HbmXsd/HbmCodeGenerator.cs
@@ -1,3 +1,4 @@
+using System;
using System.CodeDom;
using System.IO;
using System.Xml.Schema;
@@ -18,6 +19,8 @@ public void Execute(string outputFileName)
{
using (Stream stream = GetType().Assembly.GetManifestResourceStream(MappingSchemaResourceName))
{
+ if (stream == null)
+ throw new InvalidOperationException($"Unable to load resource {MappingSchemaResourceName}");
XmlSchema schema = XmlSchema.Read(stream, null);
Execute(outputFileName, GeneratedCodeNamespace, schema);
}
diff --git a/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt b/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt
index eea263dcf79..69bbbac382e 100644
--- a/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt
+++ b/src/NHibernate.Tool.HbmXsd/How to generate Hbm.generated.cs.txt
@@ -1,4 +1,4 @@
1) Clean the "EveryThing" solution
2) Build all
-3) open console and change dir to "src\NHibernate.Tool.HbmXsd\bin\Debug"
-4) run: hbmxsd ..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs
+3) open console and change dir to "src\NHibernate.Tool.HbmXsd\bin\Debug\net461"
+4) run: HbmXsd ..\..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs
diff --git a/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj b/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj
index 3c1f65274d0..fca4c8ba503 100644
--- a/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj
+++ b/src/NHibernate.Tool.HbmXsd/NHibernate.Tool.HbmXsd.csproj
@@ -2,6 +2,8 @@
net461
+ Exe
+ NHibernate.Tool.HbmXsd.Program
False
False
False
@@ -9,10 +11,15 @@
False
False
False
+ HbmXsd
+
+
+
+
diff --git a/src/NHibernate.Tool.HbmXsd/Program.cs b/src/NHibernate.Tool.HbmXsd/Program.cs
index 0c3d957ea02..a2f65fa016d 100644
--- a/src/NHibernate.Tool.HbmXsd/Program.cs
+++ b/src/NHibernate.Tool.HbmXsd/Program.cs
@@ -1,4 +1,6 @@
+using System;
using System.Globalization;
+using System.IO;
using System.Threading;
namespace NHibernate.Tool.HbmXsd
@@ -7,11 +9,21 @@ public class Program
{
private static void Main(string[] args)
{
- string outFile = args.Length == 0 ? @"..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs" : args[0];
+ string outFile = Path.GetFullPath(args.Length == 0
+ ? @"..\..\..\..\NHibernate\Cfg\MappingSchema\Hbm.generated.cs"
+ : args[0]);
+ if (!Directory.Exists(Path.GetDirectoryName(outFile)))
+ {
+ Console.Error.WriteLine("Invalid target path: directory does not exist.");
+ Console.Error.WriteLine(outFile);
+ Environment.ExitCode = -1;
+ return;
+ }
var currentUiCulture = new CultureInfo("en-us");
Thread.CurrentThread.CurrentCulture = currentUiCulture;
Thread.CurrentThread.CurrentUICulture = currentUiCulture;
new HbmCodeGenerator().Execute(outFile);
+ Console.WriteLine("Done");
}
}
}
\ No newline at end of file
diff --git a/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs b/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs
index e9b347bfc8d..4d9215ce474 100644
--- a/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs
+++ b/src/NHibernate/Cfg/MappingSchema/Hbm.generated.cs
@@ -1627,6 +1627,7 @@ public partial class HbmClass {
///
[System.Xml.Serialization.XmlElementAttribute("timestamp", typeof(HbmTimestamp))]
+ [System.Xml.Serialization.XmlElementAttribute("timestamputc", typeof(HbmTimestamputc))]
[System.Xml.Serialization.XmlElementAttribute("version", typeof(HbmVersion))]
public object Item1;
@@ -3595,6 +3596,89 @@ public enum HbmVersionGeneration {
Always,
}
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")]
+ [System.Xml.Serialization.XmlRootAttribute("timestamputc", Namespace="urn:nhibernate-mapping-2.2", IsNullable=false)]
+ public partial class HbmTimestamputc {
+
+ ///
+ [System.Xml.Serialization.XmlElementAttribute("meta")]
+ public HbmMeta[] meta;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string name;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string node;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string column;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string access;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute("unsaved-value")]
+ public HbmTimestamputcUnsavedvalue unsavedvalue;
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool unsavedvalueSpecified;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(HbmTimestamputcSource.Vm)]
+ public HbmTimestamputcSource source;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(HbmVersionGeneration.Never)]
+ public HbmVersionGeneration generated;
+
+ public HbmTimestamputc() {
+ this.source = HbmTimestamputcSource.Vm;
+ this.generated = HbmVersionGeneration.Never;
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")]
+ public enum HbmTimestamputcUnsavedvalue {
+
+ ///
+ [System.Xml.Serialization.XmlEnumAttribute("null")]
+ Null,
+
+ ///
+ [System.Xml.Serialization.XmlEnumAttribute("undefined")]
+ Undefined,
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:nhibernate-mapping-2.2")]
+ public enum HbmTimestamputcSource {
+
+ ///
+ [System.Xml.Serialization.XmlEnumAttribute("vm")]
+ Vm,
+
+ ///
+ [System.Xml.Serialization.XmlEnumAttribute("db")]
+ Db,
+ }
+
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("HbmXsd", "5.0.0.Alpha1")]
[System.SerializableAttribute()]
@@ -4294,15 +4378,15 @@ public enum HbmFlushMode {
///
[System.Xml.Serialization.XmlEnumAttribute("auto")]
Auto,
-
+
///
[System.Xml.Serialization.XmlEnumAttribute("manual")]
Manual,
-
+
///
[System.Xml.Serialization.XmlEnumAttribute("always")]
Always,
-
+
///
[System.Xml.Serialization.XmlEnumAttribute("never")]
Never,
diff --git a/src/NHibernate/NHibernate.csproj b/src/NHibernate/NHibernate.csproj
index b87825c4103..efbd9899d8b 100644
--- a/src/NHibernate/NHibernate.csproj
+++ b/src/NHibernate/NHibernate.csproj
@@ -47,9 +47,6 @@
-
-
-