「EntityFramework Reverse POCO Code First Generator」を使用したいが、VSからプログラムではない。EntityFrameworkをPOCOコードファーストジェネレータ(T4)をプログラムによって逆実行できますか?
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());
:私はC#のコードから、この目的のためにT4を実行したい実際に EntityFramework Reverse POCO Code Github
は 私は、このようないくつかのコードを書いた Simple T4 Engine
この目的のために、単純な-T4-エンジンをダウンロードしかし、いくつかのエラーが出る(Output.txtが空です)
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()
誰でもこの問題を解決できますか? またはをより良い方法で導入する実行の場合Database.tt実行時にC#でプログラムで実行します。
Database.tt
- EF.Reverse.POCO.Core.ttinclude
- EF.Reverse.POCO.ttinclude
- EF.Utility.CS.ttinclude
- EF6.Utility .CS.ttinclude
- GenerateTSQL.Utility.ttinclude
ツールに感謝していますが、私はライセンスに関するご意見に戸惑うことがあります。これはApache 2.0として配布されており、修正、派生、配布などが可能です。クイックレビューの後、私はライセンスの制限について言及していません。Apache 2.0に基づいて、誰もが自動化のためのブロッカーこのユーティリティ。 – STW
...これを研究した後、あなたはAPL 2.0(VisualStudioGallery.com経由)と修正APL 2.0(GitHub経由)の両方でこれを公開したようです。私の感覚は、変更されたAPL 2.0は有効ではない可能性が高いということです。通常、Apacheは完全にde-brandingしなくてもライセンスを変更することはできません(変更後にApacheのライセンスとすることはできません)。 VS Galleryを介して在庫APL 2.0として配布されているので、プラグインのこれらのバージョンは明らかに変更と再配布が可能です。 – STW
ええ、残念ながら、私はあなたがApache 2.0を要求できるとは思わないと思います。ライセンスを変更したので、もうApache 2ライセンスではありません。 –