如何让自动生成的文件识别它自己创建的方法?
How can I get an auto-generated file to recognize a method it created itself?
我有一个 *.tt 文件(实际上是两个,但它们的作用相似,所以我只说一个)。
我像另一个项目一样设置它们,它们工作正常。它们的属性设置相同,如:
CustomTool = TetxtTemplatingFilePreprocessor
当我select"Run Custom Tool"时,会创建一个对应的*.cs文件:
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version: 10.0.0.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
但是项目不会编译,因为这个代码在自动生成的文件 (FormTemplate.cs):
FormTemplate formTemplate = new FormTemplate(POST, this);
output.Write(formTemplate.TransformText());
...无法编译。错误是,“'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 不包含 'TransformText' 的定义,并且找不到接受类型 'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 的第一个参数的扩展方法 'TransformText'”
它如何生成代码,然后找不到它引用的方法?实际上,它 确实 生成了方法,它就在 FormTemplate.cs:
中
#line 1
"C:\Projects\QuizModule_Test\QuizModule_Test\QuizModuleWebPart\Templates\FormTem
plate.tt"
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
public partial class FormTemplate : FormTemplateBase
{
{
public virtual string TransformText()
{
为什么会看不到自己的方法?
更新
这原来是那些 "my bads" 中产生的 [s] 错误信息之一。发生的事情是,我的一些命名空间是错误的——代码是从另一个项目中逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。
原因
这原来是那些 "my bads" 中产生的 [s] 错误信息之一。
解决方案
发生的事情是,我的一些命名空间是错误的 - 代码是从另一个项目逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。
我有一个 *.tt 文件(实际上是两个,但它们的作用相似,所以我只说一个)。
我像另一个项目一样设置它们,它们工作正常。它们的属性设置相同,如:
CustomTool = TetxtTemplatingFilePreprocessor
当我select"Run Custom Tool"时,会创建一个对应的*.cs文件:
// ------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version: 10.0.0.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
但是项目不会编译,因为这个代码在自动生成的文件 (FormTemplate.cs):
FormTemplate formTemplate = new FormTemplate(POST, this);
output.Write(formTemplate.TransformText());
...无法编译。错误是,“'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 不包含 'TransformText' 的定义,并且找不到接受类型 'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 的第一个参数的扩展方法 'TransformText'”
它如何生成代码,然后找不到它引用的方法?实际上,它 确实 生成了方法,它就在 FormTemplate.cs:
中#line 1
"C:\Projects\QuizModule_Test\QuizModule_Test\QuizModuleWebPart\Templates\FormTem
plate.tt"
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
public partial class FormTemplate : FormTemplateBase
{
{
public virtual string TransformText()
{
为什么会看不到自己的方法?
更新
这原来是那些 "my bads" 中产生的 [s] 错误信息之一。发生的事情是,我的一些命名空间是错误的——代码是从另一个项目中逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。
原因
这原来是那些 "my bads" 中产生的 [s] 错误信息之一。
解决方案
发生的事情是,我的一些命名空间是错误的 - 代码是从另一个项目逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。