C# 使用t4模板在子文件夹中生成类

C# 使用t4模板在子文件夹中生成类,c#,entity-framework-5,t4,dbcontext,C#,Entity Framework 5,T4,Dbcontext,我正在使用T4模板生成实体的上下文。当t4模板文件运行时,它会在项目根目录中添加生成的文件。我想要的是生成的文件放在子文件夹下。如果子文件夹不存在,则创建该文件夹,然后将生成的文件放入其中。若文件存在,则不会生成新文件 我是t4模板的新手。我换了 fileManager.StartNewFile(entity.Name + ".cs"); 到 当我运行它时,会在子文件夹(使用windows资源管理器打开文件夹)中创建该文件,但project不知道它。如果没有文件夹,则会发生奇怪的行为。我遗漏了

我正在使用T4模板生成实体的上下文。当t4模板文件运行时,它会在项目根目录中添加生成的文件。我想要的是生成的文件放在子文件夹下。如果子文件夹不存在,则创建该文件夹,然后将生成的文件放入其中。若文件存在,则不会生成新文件

我是t4模板的新手。我换了

fileManager.StartNewFile(entity.Name + ".cs");


当我运行它时,会在子文件夹(使用windows资源管理器打开文件夹)中创建该文件,但project不知道它。如果没有文件夹,则会发生奇怪的行为。我遗漏了什么?

最好将tt文件和模型类放在同一个文件夹中。只需更改inputFile路径,如inputFile=@“.\Model1.edmx”(如果您的edmx文件位于根文件夹中)


另一件可能需要更改的事情是名称空间,默认情况下它是Code.vsnamespacessuggestion(),它会将子文件夹名称添加到名称空间。比如“ClassLibrary1.子文件夹”。这可能会引起问题。您可以硬编码名称空间,如namespaceName=“ClassLibrary1”。

我要做的是将模板放置在所述子文件夹中。这可能对你不起作用,但在我的情况下,它完成了工作。
fileManager.StartNewFile("SubFolder\" + entity.Name + ".cs");