【问题标题】:Why does SubSonic's ActiveRecord T4 template generate ActiveRecord1.cs and not ActiveRecord.cs?为什么 SubSonic 的 ActiveRecord T4 模板生成 ActiveRecord1.cs 而不是 ActiveRecord.cs?
【发布时间】:2010-01-26 15:53:13
【问题描述】:

我在几个项目中使用了 SubSonic 的 ActiveRecord T4 模板。今天,我将其中一个项目中的相同模板(没有生成的 .cs 源文件)添加到一个新项目中。

由于某种原因,当我运行 T4 模板代码生成器时,而不是生成:

ActiveRecord.csContext.csStoredProcedures.csStructs.cs

模板生成器创建:

改为ActiveRecord1.csContext1.csStoredProcedures1.csStructs1.cs

我已删除 ActiveRecord 文件夹中的所有 .cs 源文件,并且整个解决方案中没有其他具有这些名称的文件。

虽然这不是问题,因为生成了正确的类、命名空间等,但看到文件名末尾的数字 1 很烦人。

我使用的是 SubSonic 3.0.0.3。

有人知道为什么会这样吗?

【问题讨论】:

    标签: c# subsonic subsonic3 t4 subsonic-active-record


    【解决方案1】:

    解决方法是删除生成的 .cs 文件并手动编辑 .proj 文件。右键单击VS2008中的项目并卸载项目。

    在 .proj 文件中搜索 LastGenOutput 中的 ActiveRecord1.cs 并更改回 ActiveRecord.cs。重复其他文件。不知何故,这些名称是递增的。

    <None Include="T4AutoGen\ActiveRecord.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>ActiveRecord.cs</LastGenOutput>
    </None>
    

    保存文件并重新加载项目。您的文件现在应该正确生成。

    除了 t4 模板有些奇怪之外,我不确定为什么会发生这种情况。这应该会让你重新开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      相关资源
      最近更新 更多