我正在构建一个NuGet包,它将一些T4模板传送到CodeTemplates目录中。当我安装NuGet软件包时,T4模板都将“自定义工具”属性设置为“TextTemplatingFileGenerator”。这是不对的。NuGet - T4安装后文件属性不同
我知道我可以通过改变我的注册表来禁用这个功能,以便不用这种方式添加新的T4模板,但是由于这是一个NuGet软件包,这不是一个选项。
我已经看过PowerShell,但是我很难理解我将如何实现我的目标。
我已经看过了的.csproj文件的XML,发现这个:
<None Include="CodeTemplates\AddController\Controller.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>Controller.cs</LastGenOutput>
</None>
如果我从这个节点删除“TextTemplatingFileGenerator”,那么该文件将工作,我的愿望。
我应该从哪里出发?
这听起来像你对问题的一些知识,但是这并不能真正解决我的问题。我绝对希望将T4模板作为项目的一部分。这是我知道重写MVC中的默认视图和控制器模板的唯一方法。另外我还有一些其他的模板,我想住在项目中。 – 2011-05-16 14:03:45
我不认为有一种很好的方式来做你想做的事情,在VS添加后自动化VS来改变类型。 AddMvc3ToWebForms包处理项目文件以更改GUID - 也许您可以做类似的操作,以针对添加的每个文件更改自定义工具? – 2011-05-16 14:20:11
是的,那可能是我会做的。我希望有人可以帮助。 – 2011-05-16 15:24:05