Включение текстового шаблона (* .tt) в стандартный пакет NuGet .NET - PullRequest
0 голосов
/ 22 сентября 2018

Я публикую библиотеку классов .NET Standard в виде пакета на фиде MyGet, выбрав «Создать пакет NuGet при сборке» в настройках проекта и используя сервис сборки MyGet.Мой Cds.IoC.csprj выглядит следующим образом:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <RootNamespace>Cds.IoC</RootNamespace>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <Authors>...</Authors>
    <Company>...</Company>
    <Product>...</Product>
    <Description>...</Description>
    <Copyright>© 2018</Copyright>
    <PackageTags>...</PackageTags>
    <PackageReleaseNotes>...</PackageReleaseNotes>
    <AssemblyVersion>0.0.0.1</AssemblyVersion>
    <FileVersion>0.0.0.1</FileVersion>
    <Version>1.0.1-alpha</Version>
  </PropertyGroup>
</Project>

Как добавить файл текстового шаблона Some.tt в пакет, чтобы он отображался в ссылочном проекте?Я не хотел бы, чтобы это генерировало вывод на сборку пакета;просто ищу способ автоматического добавления файла TT в ссылочный проект.

1 Ответ

0 голосов
/ 24 сентября 2018

Как добавить текстовый шаблон Some.tt в пакет, чтобы он отображался в ссылочном проекте?

Вы можете использовать свойство <Pack>true</Pack> для добавления файла Text Template Some.tt в пакет:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <RootNamespace>Cds.IoC</RootNamespace>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <Authors>...</Authors>
    <Company>...</Company>
    <Product>...</Product>
    <Description>...</Description>
    <Copyright>© 2018</Copyright>
    <PackageTags>...</PackageTags>
    <PackageReleaseNotes>...</PackageReleaseNotes>
    <AssemblyVersion>0.0.0.1</AssemblyVersion>
    <FileVersion>0.0.0.1</FileVersion>
    <Version>1.0.1-alpha</Version>
  </PropertyGroup>
  <ItemGroup>
    <None Update="some.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>some.txt</LastGenOutput>    
    </None>
    <None Update="some.txt">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>some.tt</DependentUpon>
      <Pack>true</Pack>
    </None>
  </ItemGroup>
</Project>

Когда вы создаете проект, сгенерированный исходный файл some.tt будет добавлено в пакет nuget, затем вы добавите этот пакет nuget в проект, этот файл будет добавлен в проект.

Проверьте документ Пакет NuGet и восстановите как цели MSBuild длянекоторые подробности.

Надеюсь, это поможет.

...