我已将我的t4模板放在CodeTemplate \ MyTemplateFolder文件夹中,但无法从那里开始工作。
问题是我需要访问位于项目根目录中的名为models的文件夹。
即:
Project Root Folder\CodeTemplates\MyTemplateFolder\MyTemplate.tt
我需要访问以下文件:
Project Root Folder\Models
但是,我无法弄清楚如何使用this.Host.ResolvePath
从我的模板中获取Models
文件夹。
有什么建议吗?
使用:
var relativePathModelsFolder = @"..\..\Models";
var path = this.Host.ResolvePath(relativePathModelsFolder);
给了我根文件夹的绝对路径.... \模型卡在最后。
我似乎无法遍历到根目录,然后进入我的Models文件夹。
答案 0 :(得分:10)
这对我来说似乎更简单:
({
<#
var projectPath = Host.ResolveAssemblyReference("$(ProjectDir)");
var viewPath = projectPath + "Views";
#>
view:"<#=viewPath #>",
}
)
答案 1 :(得分:1)
我通过获取项目然后获取路径然后添加文件夹来解决问题:
获得项目:
Project GetLibraryProject(string tier)
{
return VisualStudioHelper.GetAllProjects().Where(x => x.Name == tier).First();
}
获取路径:
string GetProjectPath(Project project)
{
var pathProjectFile = project.FullName;
return pathProjectFile.Replace(project.Name + ".csproj", "");
}
全部放在一起:
var project = GetLibraryProject("MyMvcApp.MyClassLibrary");
var path = GetProjectPath(project);
var myUsefulPath = path + @"MyFolderParent\MyFolder";