二手MS Studio社区2015和SP2。
我需要在构建时重新编译T4。
我确实添加到项目中:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\TextTemplating\Microsoft.TextTemplating.targets" />
和
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
这股力量重新编译T4&#39。
但编译有问题 - 而不是使用为特定T4指定的CustomToolNamespace使用常见的RootNamespace。结果是一场彻底的灾难。
我在项目文件中使用CustomToolNamespace的位置,但没有正面结果。
指出我在哪里看 - 仍然尝试使用* .csproj或开始寻找调试Microsoft.TextTemplating.targets?
或者简单地生成&#39; tempalaterecompilation.bat&#39;并在预构建时运行它?我非常不喜欢这种方式。
答案 0 :(得分:0)
我检查了一个Microsoft.TextTemplating.targets。 它包含命名空间
的定义<PropertyGroup>
<!-- Unless another namespace has been specified, use the project namespace as the
default namespace from pre-processed files. -->
<PreprocessTemplateDefaultNamespace Condition=" $(PreprocessTemplateDefaultNamespace)=='' ">$(RootNamespace)</PreprocessTemplateDefaultNamespace>
</PropertyGroup>
因此,故意使用RootNamespace。
我需要更改以获得使用为模板定义的CustomToolNamespace的目标吗?
答案 1 :(得分:0)
我确实找到了问题的临时解决方案。
几乎没有可以从中获取命名空间的地方。
其中一个 - “内容”部分中的ClassNamespace。如果指定了这个值,则给定的值将用作命名空间。
但这是解决方法,我仍然在寻找使用* .targets的解决方案。