Проблемы с использованием T4 для генерации базовой информации о сборке - PullRequest
0 голосов
/ 06 ноября 2018

У меня проблемы с созданием самого простого из Assembly Information с использованием T4 - кто-нибудь может мне помочь?

Я просто хочу, чтобы приведенный ниже код генерировал номер версии вручную, чтобы я мог видеть, что он работает, но скомпилированный файл .cs не имеет необходимой информации.

Вот код:

SharedAssemblyInfo.tt

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#
    int major    = 5;
    int minor    = 0;
    int build    = 0;
    int revisions = 0;

    // TODO: Write code here to automatically generate a version

    string version = String.Format("{0}.{1}.{2}.{3}",
                                   major,
                                   minor,
                                   build,
                                   revisions);
#>
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.

using System.Reflection;


[assembly: AssemblyVersion("<#= version #>")]
[assembly: AssemblyFileVersion("<#= version #>")]

Вот ожидаемый результат:

SharedAssemblyInfo.cs

using System.Reflection;

[assembly: AssemblyVersion("5.0.0.0")]
[assembly: AssemblyFileVersion("5.0.0.0")]

А вот фактический результат , который не имеет кода сборки, указанного выше.

Это похоже на несколько вопросов, которые я рассмотрел, например: это , это и это , но даже следуя их конкретным случаям использования, я ' я не смог создать файл .cs с атрибутами AssemblyVersion и AssemblyFileVersion, которые я ожидаю

1 Ответ

0 голосов
/ 03 января 2019

По выводу похоже, что файл .tt настроен как генератор файлов времени выполнения , а не как генератор времени разработки.

Проверьте свойство Custom Tool для файла. Это должно быть TextTemplateFileGenerator , а не TextTemplatingFilePreprocessor :

enter image description here

...