问题描述
|
我有一个T4模板为支持我的
.edmx
模型的实体生成C#类。模板以以下标题开头:
<#@ template language=\"C#\" debug=\"false\" hostspecific=\"true\"#>
<#@ include file=\"EF.Utility.CS.ttinclude\"#>
<#@ output extension=\".cs\"#>
尝试构建项目会导致这些错误
error CS0234: The type or namespace name \'Design\' does not exist in the namespace \'System.Data.Entity\'...
error CS0246: The type or namespace name \'EnvDTE\' Could not be found (are you missing a using directive...
error CS0234: The type or namespace name \'VisualStudio\' does not exist in the namespace \'Microsoft\'...
我怎样才能解决这个问题?
解决方法
事实证明,基于VS可扩展性线程,问题的原因是
Clarius Visual T4扩展。重置ѭ3中的该节点
归档到
<Compile Include=\"SomeModel.tt\">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>SomeModel.cs</LastGenOutput>
</Compile>
从
<None Include=\"SomeModel.tt\">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>SomeModel.cs</LastGenOutput>
</None>
解决方案是在“ 3”文件中手动将节点更改为“ 6”。改变它
通过Visual Studio属性编辑器返回的.tt
文件不起作用。
最后,禁用扩展名可以防止这种情况再次发生。
, 只需在.tt
文件的开头添加所需的程序集即可;像这样:
<#@ template language=\"C#\" debug=\"false\" hostspecific=\"true\"#>
<#@ assembly name=\"System.Data.Entity\" #>
<#@ assembly name=\"System.Data.Entity.Design\" #>
...