我们目前正在多个项目中使用一些共享的T4文件。这些文件现在存在于各种git存储库中,因此我们希望通过nuget分发它们。
使用这些文件创建一个nuget包作为内容工作正常,但我在每个项目中获得这些T4的单独副本。不幸的是,我们每个存储库的项目数仍然很高,因此我们会得到文件重复的内容。这会减慢克隆和结帐操作。
我试图找到一种类似于Nunit3TestAdapter的方法:只需将文件部署在nuget包的libs文件夹中,但不要更改项目中的任何内容。
这样我们只能拥有这些共享文件的一个副本。
如何在nuspec文件中管理它?只要我没有要添加到项目中的文件,我就会收到消息“您正在尝试将此软件包安装到以'.NETFramework,Version = v4.0'为目标的项目中,但该软件包不包含任何程序集与该框架兼容的引用或内容文件。有关更多信息,请与软件包作者联系。“
这是我当前的nuspec文件(当我们通过TFS构建软件包时会替换$ variables):
<?xml version="1.0"?>
<package>
<metadata>
<id>$SolutionName$</id>
<version>$Version$</version>
<authors>$SSH$</authors>
<owners>$SSH$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Softship common T4 templates. Current Version: $Version$</description>
<copyright>Copyright $date$</copyright>
<!-- Do not list this as dependency of other nuget -->
<developmentDependency>true</developmentDependency>
</metadata>
<files>
<file src="build/net35/MultipleOutputHelper.ttinclude" target="build\net35" />
<file src="build/net35/GenerateTextMessages.ttinclude" target="build\net35" />
<file src="build/net35/DataModelRelationsGenerator.ttinclude" target="build\net35" />
<file src="build/net35/DataModelGenerator.ttinclude" target="build\net35" />
</files>
</package>
答案 0 :(得分:0)
这实际上对我有用:
<files>
<file src="tools/MultipleOutputHelper.ttinclude" target="tools" />
<file src="tools/GenerateTextMessages.ttinclude" target="tools" />
<file src="tools/DataModelRelationsGenerator.ttinclude" target="tools" />
<file src="tools/DataModelGenerator.ttinclude" target="tools" />
</files>