2016-05-27 15 views
1

Ich habe ein nugget-Paket mit Inhalten, die ich in die Build-Ausgabe kopiert werden soll, wenn Benutzer mein Paket installieren. Dafür gibt es Unterstützung: NuGet ContentFiles Demystified in NuGet v3.3. Es funktioniert jedoch nur in Projekten, die project.json verwenden. Die contentFiles werden nicht in meine Build-Ausgabe kopiert, wenn ich ein Projekt verwende, das packages.config verwendet.Gibt es eine Alternative zu contentFiles mit Projekten, die packages.config verwenden?

Gibt es eine Alternative oder Workaround, die ich verwenden könnte, um mein NuGet-Paket an Projekten arbeiten zu lassen, die entweder project.json oder packages.config verwenden?

Antwort

1

Eine schnelle Suche auf Stackoverflow zeigt die folgende Frage, die ich denke deckt, was Sie fordern für:

Set content files to "copy local : always" in a nuget package

Sie Ihre Dateien in einem Content directory innerhalb des NuGet Paket setzen können.

In Ihrer .nuspec Datei:

<file src="css\mobile\*.css" target="content\css\mobile" /> 

Bei der Installation, dass in Ihr Projekt wird die CSS \ Handy-Verzeichnis zu einem Projekt und die Dateien in diesem Verzeichnis hinzuzufügen.

Allerdings fügt das nur die Dateien dem Projekt hinzu. Um sie in Ihr Ausgabeverzeichnis kopieren zu können, müssen Sie entweder ein PowerShell-Skript verwenden, um die lokalen Informationen des Projektelements zu ändern.

Eine Alternative, möglicherweise eine bessere Möglichkeit, wäre die Verwendung einer benutzerdefinierten MSBuild .targets file. Diese Datei wird als Import in Ihr Projekt eingefügt. Anschließend können Sie in Ihrer .targets-Datei die gewünschten Dateien hinzufügen und die Kopie so angeben, dass Informationen direkt ausgegeben werden, als ob sie Teil Ihres Projekts wären. NuGet .nupkg Dateiinhalt:

\build 
    \Net45 
     \MyPackage.targets 
     \Foo.txt 

MyPackage ist die ID des NuGet Paket oben.

In der .targets-Datei geben Sie die Dateien an (z. B. Foo.txt).

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
    <None Include="Foo.txt"> 
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    </None> 
    </ItemGroup> 
</Project>