Почему шаблон SubSonic ActiveRecord T4 генерирует ActiveRecord1.cs, а не ActiveRecord.cs?

Я использовал шаблоны ActiveRecord T4 от SubSonic в нескольких проектах. Сегодня я добавил те же шаблоны из одного из этих проектов (без сгенерированных исходных файлов .cs) в новый проект.

По какой-то причине, когда я запускаю генератор кода шаблона T4, вместо генерации:

ActiveRecord.cs, Context.cs, StoredProcedures.cs и Structs.cs

генератор шаблонов создает:

ActiveRecord1.cs, Context1.cs, StoredProcedures1.cs и Structs1.cs вместо этого.

Я удалил все исходные файлы .cs в папке ActiveRecord, и во всем решении нет других файлов с такими именами.

Хотя это не проблема, поскольку генерируются правильные классы, пространства имен и т. Д., Неприятно видеть число 1 в конце имен файлов.

Я использую SubSonic 3.0.0.3.

Кто-нибудь знает, почему это происходит?


person Kev    schedule 26.01.2010    source источник


Ответы (1)


Решение - удалить сгенерированные файлы .cs и отредактировать файл .proj вручную. Щелкните правой кнопкой мыши проект в VS2008 и выгрузите проект.

Найдите в файле .proj ActiveRecord1.cs в LastGenOutput и вернитесь к ActiveRecord.cs. повторите для других файлов. Как-то эти имена приумножаются.

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

Сохраните файл и перезагрузите проект. Теперь ваши файлы должны сгенерироваться правильно.

Я не уверен, почему это происходит, кроме какой-то странности с шаблонами t4. Это должно заставить вас снова пойти.

person Community    schedule 26.02.2010