2017-09-27 14 views
0

私はこのnuspecファイルがあります:私はこのnuspecファイルをパックするときナゲットが私のファイルを追加していないのはなぜですか?

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>My.Package</id> 
    <version>1.0.1.7</version> 
    <title>My Package</title> 
    <authors>My name</authors> 
    <owners>Mu author</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>My description</description> 
    <releaseNotes>Release note</releaseNotes> 
    <copyright>Copyright 2017</copyright> 
    <tags>tag1 tag2</tags> 
    <contentFiles> 
     <files include="myFile.config" copyToOutput="true" /> 
    </contentFiles> 
    </metadata> 
    <files> 
    <file src="myFile.config" target=""/> 
    </files> 
</package> 

、私nupkgファイルが作成され、NuGetパッケージエクスプローラーで、私はmyFile.configが私のパッケージに含まれていることを確認されています。すべてこれまでのところうまくいった。

しかし、このパッケージをインストールすると、dllが参照に追加されますが、myFile.configはソリューションに追加されません。私は成功せず試した

もの: - myFile.configは(ありません)が作成されたかどうかを確認するために、ディスク上のフォルダを見る - <file src="myFile.config" target="."/> - <file src="myFile.config" target=".\"/>

私もファイルがCopy to Output Directoryを設定します: Copy always

私はここで何が欠けていますか?

PS:私はプライベートナゲットサーバーで作業しています。

答えて

1

ターゲットはcontentである必要があります。これは、nugpkgのコンテンツサブディレクトリのファイルがコンシューマプロジェクトにコピーされるためです。

これは、packages.config NuGetパッケージを参照するスタイルを使用するプロジェクトでのみ機能することに注意してください。 PackageReference(VS2017、.NET Core/ASP.NET Core/.NET Standardプロジェクトではデフォルトで使用可能)については、ファイルを論理的にビルドプロセスに含める新しいcontentFiles機能があります。

詳細については、NuGetのdocumentation on including content filesを参照してください。

+0

ありがとうございます!私は 'Content'は消費するプロジェクトの物理的なディレクトリだと思っていました。また、 'Copy to output directory'を' Copy always'に設定しない理由も知っていますか? – Martijn

+0

これはサポートされていないためです。私はこの答えをお勧めします:https://stackoverflow.com/a/30386836/784387( 'packages.config'と' PackageReference'プロジェクトの両方で動作するはずです) –

+0

ああ、あまりにも悪いです。とにかくありがとう! – Martijn

関連する問題