nuget:部署T4文件而不引用

时间:2017-10-06 07:01:16

标签: tfs nuget

我们目前正在多个项目中使用一些共享的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>

1 个答案:

答案 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>