2015-11-11 8 views
3

Я создаю пакет NuGet, который предоставляет клиент для моего проекта WebAPI, отражая по ApiController s и создавая классы для каждого из них с методами, соответствующими действиям, определенным на контроллер. К сожалению, файл .tt входит в папку содержимого при запуске nuget.exe pack Client.csproj. Я попытался создать файл .nuspec с директивой <files>, но я не могу исключить файл сам по себе. Кто-нибудь знает, как заставить пакет исключить шаблон T4?Как исключить шаблон T4 из пакета NuGet

Структура проекта примерно:

Website/ 
    Controllers/ 
     UserController.cs 
     ... 
Client/ 
    Client.tt 
    Client.cs 
     namespace Client 
      class UserService 
      ... 

И я хотел бы пакет NuGet как:

lib/ 
    net45/ 
     Client.dll 
      namespace Client 
       class UserService 

Но я получаю что-то вроде этого:

content/ 
    Client.tt 
lib/ 
    net45/ 
     Client.dll 
      namespace Client 
       class UserService 
       ... 

ответ

2

Оказывается, простым решением является использование опции -Exclude при создании пакета через командную строку.

NuGet.exe Pack Client.csproj -Exclude *.tt 

Новый пакет будет выглядеть точно так, как указано в вопросе.

+1

Хороший gotcha - он не исключает любые файлы .tt в подкаталогах, вы также должны исключать их из своего списка. – Rocklan

+1

Чтобы исключить все, просто сделайте -Exclude **/*. Tt – Rocklan

6
NuGet.exe Pack Client.csproj -Exclude **/*.tt 
Смежные вопросы