如何从NuGet包中排除T4模板

Kyl*_*ten 4 t4 nuget

我正在创建一个NuGet包,它为我的WebAPI项目提供了一个客户端,它通过反映ApiControllers并为每个创建类,并使用与控制器上定义的操作相对应的方法.不幸的.tt是,当我运行时,文件被包含在内容文件夹中nuget.exe pack Client.csproj.我已经尝试.nuspec使用<files>指令创建一个文件,但我似乎无法单独排除该文件.有谁知道如何强制包排除T4模板?

项目结构大致如下:

Website/
    Controllers/
        UserController.cs
        ...
Client/
    Client.tt
    Client.cs
        namespace Client
            class UserService
            ...
Run Code Online (Sandbox Code Playgroud)

我想要一个NuGet包,如:

lib/
    net45/
        Client.dll
            namespace Client
                class UserService
Run Code Online (Sandbox Code Playgroud)

但是我得到这样的东西:

content/
    Client.tt
lib/
    net45/
        Client.dll
            namespace Client
                class UserService
                ...
Run Code Online (Sandbox Code Playgroud)

Pat*_*ina 6

NuGet.exe Pack Client.csproj -Exclude **/*.tt
Run Code Online (Sandbox Code Playgroud)


bau*_*aur 5

就我而言,问题出在csproj文件内,我必须修复

<Content Include="SomeFile.txt" />
Run Code Online (Sandbox Code Playgroud)

<None Include="SomeFile.txt" />
Run Code Online (Sandbox Code Playgroud)


Kyl*_*ten 2

-Exclude事实证明,简单的解决方案是在通过命令行创建包时使用该选项。

NuGet.exe Pack Client.csproj -Exclude *.tt
Run Code Online (Sandbox Code Playgroud)

新包看起来与问题中指定的完全一样。