我创建一个NuGet包中提供了一个客户端通过反映在ApiController
s和每一个与对应于控制器上定义的操作方法,创建类的我的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.exe Pack Client.csproj -Exclude **/*.tt
原来的简单的解决方案是通过命令行创建包时要使用的-Exclude
选项。
NuGet.exe Pack Client.csproj -Exclude *.tt
新包装看起来完全一样的问题指定。
如果您正在使用Azure中的DevOps,我尝试了很长时间或者使用自定义的NuGet包与-exclude,没有工作的命令,或尝试添加一个.nuspec文件,但不包括从那里内容尝试。但是,毫无效果。
我在我们的项目如何固定它点击每个.TT文件和设置从“内容”为“无”的“建设行动”。它似乎并没有对以任何方式项目的影响。
也许有人有更好的解决方案,但我与它奋斗了1-2天,直到我决定拧紧,只是改变生成操作。
在我的情况,问题的csproj文件中,我不得不修复
<Content Include="SomeFile.txt" />
至
<None Include="SomeFile.txt" />