如何从NuGet包排除T4模板

问题描述 投票:4回答:4

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

项目结构大致是:

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
                ...
nuget t4
4个回答
6
投票
NuGet.exe Pack Client.csproj -Exclude **/*.tt

2
投票

原来的简单的解决方案是通过命令行创建包时要使用的-Exclude选项。

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

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


0
投票

如果您正在使用Azure中的DevOps,我尝试了很长时间或者使用自定义的NuGet包与-exclude,没有工作的命令,或尝试添加一个.nuspec文件,但不包括从那里内容尝试。但是,毫无效果。

我在我们的项目如何固定它点击每个.TT文件和设置从“内容”为“无”的“建设行动”。它似乎并没有对以任何方式项目的影响。

也许有人有更好的解决方案,但我与它奋斗了1-2天,直到我决定拧紧,只是改变生成操作。


0
投票

在我的情况,问题的csproj文件中,我不得不修复

<Content Include="SomeFile.txt" />

<None Include="SomeFile.txt" />
© www.soinside.com 2019 - 2024. All rights reserved.