如何使用NuGet软件包部署T4包含文件

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

我有一些T4包含文件,我想在多个项目中重复使用。因此,我创建了一个NuGet包,并将文件放在该包的Tools文件夹中。现在它们已安装在packages\PackageName.x.x.x\Tools文件夹中,我可以在项目的T4文件中添加一个include指令。

但是这样做的缺点是,路径中有一个版本号,当我创建软件包的新版本时,该版本号会更改。这将需要我更新项目中的所有include指令。

有人知道这样做的好方法的提示吗?

.net t4 nuget
2个回答
2
投票

如果这些T4模板应该在库中生成代码,则可以将它们放入内容目录中。

它们将被添加到具有nuget包引用的库中。因此,将工具重命名为内容(或添加新文件夹内容),就可以了。您也可以将子文件夹添加到该文件夹​​。或在其中放置.cs文件。

参见:http://docs.nuget.org/docs/reference/nuspec-reference


2
投票

T4 include指令不能识别msbuild属性,但是汇编程序可以。因此,您可以使用基本模板类,并从NuGet包中引用程序集。

使用NuGet 2.5(在最初发布时可能不可用),您可以创建msbuild .props文件。分配$(MSBuildThisFileDirectory)将程序集的相对路径组合到新的msbuild属性。然后,可以在使用NuGet包的项目的T4模板中使用新属性。

© www.soinside.com 2019 - 2024. All rights reserved.