【发布时间】:2014-06-11 18:35:53
【问题描述】:
我创建了一个 T4 模板,我想在使用 NuGet 的多个项目中重复使用该模板。此模板基于自定义类,因此我需要使用模板分发 DLL。 DLL 在生成期间由模板使用,但项目本身不使用,所以我不希望它作为参考添加到目标项目中。
我的 .nuspec 文件包含我的 DLL 并将其放在包的根目录中,这将阻止它创建引用,如果我手动构建我的包,一切正常。不幸的是,我想使用“nuget pack”命令来自动获取版本号。当我运行此命令并引用项目文件时,它包含我的 DLL 两次,一次在根目录中(正如我在 nuspec 文件中指定的那样),另一次在 lib 文件夹中(以及 bin 文件夹中的所有内容)。
如何在不包含任何引用的情况下自动构建我的 NuGet 包。似乎有几种解决方案,但我无法弄清楚它们中的任何一个:
- 让 nuget 将我的 DLL 包含在 lib 文件夹中,但阻止它创建引用。我知道我可以使用
<references>部分来引用一些 DLL 而不是其他的,但在这种情况下,我不希望它引用任何内容。如果我将<references>部分留空,则它要么被忽略,要么我收到错误,具体取决于我留空的级别。 - 防止 nuget 自动包含任何 DLL,并且仅包含 nuspec 文件的
<files>部分中的文件。不幸的是,如果不自动包含我的 DLL,我无法弄清楚如何从项目文件构建包。
有什么想法吗?
【问题讨论】:
标签: nuget t4 nuget-package