Ich möchte "EntityFramework Reverse POCO Code ersten Generator" aber programmgesteuert nicht von VS. EntityFramework Reverse POCO Code GithubWie kann ich EntityFramework Reverse POCO-Code ersten Generator (T4) programmgesteuert ausführen?
In der Tat möchte ich zu diesem Zweck T4 Ausführen von C# -Code ich heruntergeladen einfach T4-Motor für diesen Zweck Simple T4 Engine
ich einige Code wie folgt geschrieben:
Engine engine = new Engine();
TemplatingHost host = new TemplatingHost(System.Text.Encoding.UTF32);
host.IncludeFileSearchPaths.Add(@"D:\IncludeFiles");
string templateFileName = "some template";
// NOTE: Doesn't actually seem to care about the name of the template file? True, but does use the path to search for stuff.
host.TemplateFile = templateFileName;
string input = File.ReadAllText(@"D:\IncludeFiles\T4Files\Database.tt");
string output = engine.ProcessTemplate(input, host);
File.WriteAllText(@"D:\IncludeFiles\T4Files\Output.txt", output);
StringBuilder sb = new StringBuilder();
foreach (CompilerError error in host.Errors)
{
sb.AppendLine(error.ToString());
}
File.WriteAllText(@"D:\IncludeFiles\T4Files\ErrorLog.txt", sb.ToString());
Aber ich habe ein paar Fehler (Output.txt ist leer)
ErrorLog.txt:
error : Running transformation: System.InvalidCastException: Unable to cast transparent proxy to type 'System.IServiceProvider'.
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetDTE()
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetCurrentProject()
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetConfigPaths()
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetConnectionString(String& connectionStringName, String& providerName, String& configFilePath)
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.InitConnectionString()
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.GetDbProviderFactory()
at Microsoft.VisualStudio.TextTemplating31A64EBEAB614B57E81A1789EC7637709A091834D5CA991E8A2195B15E2A0DFF588B0C98DCEDA8AD6902329A28B09556BDE2A9BEDFA48812CCC12CA1E68AA1C9.GeneratedTextTransformation.TransformText()
Kann jemand mir helfen, dieses Problem zu lösen? oder führen Sie einen besseren Weg für Lauf Database.tt in Laufzeit ein Ausführen in C# programmgesteuert.
Database.tt
- EF.Reverse.POCO.Core.ttinclude
- EF.Reverse.POCO.ttinclude
- EF.Utility.CS.ttinclude
- EF6.Utility .CS.ttinclude
- GenerateTSQL.Utility.ttinclude
Während ich das Tool zu schätzen wissen, bin ich verwirrt über Ihre Kommentare zur Lizenzierung. Dies wird als Apache 2.0 verteilt, was eine Modifikation, Ableitung, Verteilung usw. ermöglicht. Nach einer kurzen Überprüfung sehe ich keine Lizenzbeschränkungen und basierend darauf, dass es sich um Apache 2.0 handelt, sehe ich nichts daran, dass jemand die Blocker für die Automatisierung entfernt dieses Dienstprogramm. – STW
... nachdem wir dies (sehr kurz) untersucht haben, scheint es, dass Sie dies sowohl unter APL 2.0 (via VisualStudioGallery.com) als auch über eine modifizierte APL 2.0 (via GitHub) veröffentlicht haben. Meines Erachtens ist die modifizierte APL 2.0 wahrscheinlich nicht gültig - Apache erlaubt normalerweise nicht, dass Sie ihre Lizenzen ändern, ohne vollständig zu debandieren (Sie können nicht behaupten, dass es eine Apache-Lizenz ist, nachdem Sie sie geändert haben). Da es als Bestands-APL 2.0 über die VS Gallery vertrieben wird, ermöglichen diese Versionen des Plugins eine Modifikation und Neuverteilung. – STW
Ja, leider glaube ich nicht, dass Sie Apache 2.0 beanspruchen können. Sie haben die Lizenz geändert, es handelt sich also nicht mehr um eine Apache 2-Lizenz. –