2017-08-28 26 views
0

project.jsonというWebプロジェクト(mvc5)があります。nuspec contentプロジェクトにファイルが追加されていません

また、私には、ナゲットパッケージがあります。このパッケージの中には(dll参照の他に)いくつかのコンテンツファイル(cshtmlファイル、css、javascriptなど)があります。

達成するために2つのゴールがあります

  • 私はコンテンツファイルがプロジェクトに含ま取得したいプロジェクトにパッケージをインストールした後で。

    <?xml version="1.0"?> 
        <package> 
         <metadata> 
         /.../ 
    
         <dependencies> 
          <group targetFramework="net461"> 
           /.../ 
    
          </group> 
         </dependencies> 
          <contentFiles> 
         <files include="**/*.*" flatten="false" copyToOutput="false" buildAction="Content" /> 
         </contentFiles> 
         </metadata> 
         <files> 
         /.../ 
        <file src="..\src\Content\**\*.*" target="contentFiles\any\any\Content" /> 
        <file src="..\src\Views\**\*.*" target="contentFiles\any\any\Views" /> 
         </files> 
        </package> 
    

    まあは、Visual Studioは問題なくnugetパッケージを追加します

  • は、プロジェクトをビルドした後、私はコンテンツファイル

nuspecファイルを復元するnugetたいです。リファレンスも含まれています。しかし、内容は常に欠けています。コンテンツファイルは/ packages /フォルダからコピーされず、プロジェクトには含まれません。 プロジェクトをビルドするときも同様です.DLLをコピーするだけで、パッケージからコンテンツファイルにアクセスすることはまったくありません。

私はcopyToOutput = "true"を持っている場合にのみ動作しますが、すべてのコンテンツはもちろんbinフォルダに移動します。

コンテンツファイルを復元する必要があるのは、nugetパッケージのファイルがtfs 'ignore file'(.tfignore)によって無視されるためです。私はこれらのコンテンツファイルをTFSのWebプロジェクトの一部にしたくありません。ただし、TFSビルドサーバーはプロジェクトのビルドに失敗します。一部のコンテンツファイルが存在しないためです(パッケージのファイル)。だから私はプロジェクトを構築する前に、コンテンツファイルを復元するビルドサーバー上のnugetします。

可能であれば、この作業をどのようにするか考えてください。または、これは不可能で、プロジェクトに含めるコンテンツファイルが必要ですか?

答えて

0

これは仕様です。 NuGetパッケージはもはやプロジェクトのソースを変更するのではなく、ビルドされた出力またはビルドプロセス(.NETライブラリに加えて)に追加するだけです。プロジェクトにソースを追加するためのフォルダは、packages.configベースのプロジェクトでは引き続きサポートされていますが、既存のプロジェクトでは大幅に変更されますが、project.jsonまたはPackageReference(VS 2017)を使用するプロジェクトでは新しい動作が発生します。

2

あなたのパッケージにmsbuildターゲットを追加することができます。このターゲットにコマンドを復元nuget実行することができます...

例:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <!-- ... --> 
    </metadata> 
    <files> 
     <!-- Include your MSBuild target to \build --> 
     <file src="build\myNuGetRestoreTarget.targets" target="build" /> 
    </files> 
</package> 

は、以下を参照してください。 https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package#including-msbuild-props-and-targets-in-a-package

関連する問題