2017-10-06 14 views
0

現在、複数のプロジェクトで共有T4ファイルを使用しています。これらのファイルは現在、さまざまなgitリポジトリに存在しているため、それらをnuget経由で配布したいと考えています。nuget:参照なしでT4ファイルを展開する

これらのファイルをコンテンツとして使用してナゲットパッケージを作成すると問題はありませんが、各プロジェクトでこれらのT4のコピーを個別に取得します。残念ながら、リポジトリあたりのプロジェクト数はまだまだ高いので、重複したファイルを取得することになります。これにより、クローンとチェックアウト操作が遅くなります。

Nunit3TestAdapterと同様のアプローチを見つけようとしました.Nugetパッケージのlibsフォルダにファイルを展開するだけですが、プロジェクト内で何も変更しないでください。

このようにして、これらの共有ファイルを1つだけコピーできます。

これをnuspecファイルでどのように管理できますか?プロジェクトに追加するファイルがなくなると、「このパッケージを「.NETFramework、Version = v4.0」を対象とするプロジェクトにインストールしようとしていますが、パッケージにはアセンブリが含まれていませんそのフレームワークと互換性のある参照ファイルやコンテンツファイルなどがあります。詳細については、パッケージ作成者にお問い合わせください。ここで

私の現在のnuspecファイル(私たちはTFSを経由して、パッケージをビルドする際に$変数は置き換えられます)です。

<?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

あなたはNuGetのどのバージョンを使用して? NuGetがインストールを続けるのに十分なビルドフォルダを考慮していない場合は、 'lib/net35 /_._'の代わりにダミーの 'lib/net35 /_._'プレースホルダを置かなければならない可能性があります。さまざまな.NET Core NuGetパッケージがこの手法を使用します。アセンブリは提供されませんが、NuGetパッケージをプロジェクトにインストールすることができます。例はSystem.Xml.Documentです。 '_.'は空のファイルです。 –

+0

は私が試した 'その \t \t \t <ファイルSRC = "ツール/ MultipleOutputHelper.ttinclude" ターゲット= "ツール"/> \t \t \t <ファイルSRC = "ツール/ GenerateTextMessages.ttinclude" ターゲット= "ツール"/> \t \t \t <ファイルSRC = "ツール/ DataModelRelationsGenerator.ttinclude" ターゲット= "ツール" /> \t \t \t <ファイルSRC = "ツール/ DataModelGenerator.ttinclude" ターゲット= "ツール" /> \t \t \t \t 'それは働いた良い。 –

答えて

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> 
関連する問題