如何从 NuGet 包中排除 T4 模板
How to Exclude a T4 Template from a NuGet Package
我正在创建一个 NuGet 包,它通过反映 ApiController
s 并为每个人创建 类 来为我的 WebAPI 项目提供一个客户端,方法与在控制器。不幸的是,当我 运行 nuget.exe pack Client.csproj
时,.tt
文件被包含在内容文件夹中。我试过使用 <files>
指令创建一个 .nuspec
文件,但我似乎无法单独排除该文件。有谁知道如何强制包排除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
...
事实证明,简单的解决方案是在通过命令行创建包时使用 -Exclude
选项。
NuGet.exe Pack Client.csproj -Exclude *.tt
新包看起来与问题中指定的完全一样。
NuGet.exe Pack Client.csproj -Exclude **/*.tt
如果您使用的是 Azure DevOps,我尝试了很长时间,要么尝试使用带有 -exclude 的自定义 nuget pack 命令,但它不起作用,要么尝试添加 .nuspec 文件并从中排除内容。但是,没有任何效果。
我在项目中修复它的方法是单击每个 .tt 文件并将 "Build Action" 从 "Content" 设置为 "None"。它似乎对项目没有任何影响。
也许有人有更好的解决方案,但我苦苦挣扎了 1-2 天,直到我决定搞砸它并只更改构建操作。
在我的例子中,问题出在 csproj 文件中,我必须修复
<Content Include="SomeFile.txt" />
至
<None Include="SomeFile.txt" />
要以@Baur 的回答为基础,您可以这样设置:
<None Include="SomeFile.tt" />
在 IDE 中,右键单击文件并转到属性。
单击 BuildAction 属性
将其设置为 None
我正在创建一个 NuGet 包,它通过反映 ApiController
s 并为每个人创建 类 来为我的 WebAPI 项目提供一个客户端,方法与在控制器。不幸的是,当我 运行 nuget.exe pack Client.csproj
时,.tt
文件被包含在内容文件夹中。我试过使用 <files>
指令创建一个 .nuspec
文件,但我似乎无法单独排除该文件。有谁知道如何强制包排除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
...
事实证明,简单的解决方案是在通过命令行创建包时使用 -Exclude
选项。
NuGet.exe Pack Client.csproj -Exclude *.tt
新包看起来与问题中指定的完全一样。
NuGet.exe Pack Client.csproj -Exclude **/*.tt
如果您使用的是 Azure DevOps,我尝试了很长时间,要么尝试使用带有 -exclude 的自定义 nuget pack 命令,但它不起作用,要么尝试添加 .nuspec 文件并从中排除内容。但是,没有任何效果。
我在项目中修复它的方法是单击每个 .tt 文件并将 "Build Action" 从 "Content" 设置为 "None"。它似乎对项目没有任何影响。
也许有人有更好的解决方案,但我苦苦挣扎了 1-2 天,直到我决定搞砸它并只更改构建操作。
在我的例子中,问题出在 csproj 文件中,我必须修复
<Content Include="SomeFile.txt" />
至
<None Include="SomeFile.txt" />
要以@Baur 的回答为基础,您可以这样设置:
<None Include="SomeFile.tt" />
在 IDE 中,右键单击文件并转到属性。
单击 BuildAction 属性 将其设置为 None