Open MatthieuHernandez opened 4 years ago
I have the exact same problem. No content files are copied to the build path of my application! The resulting nuget package is valid and all files and folders are in the correct place. Even the extracted nuget package in the .nuget folder looks correct, but for some reason it wont copy any files after build. I tried changing all the attributes in the files tag, but had no luck.
Tools i am using:
Nuspec:
<package>
<metadata>
<!-- id, version, title, description, etc. -->
<contentFiles>
<files include="Docs/Changelog.txt" buildAction="None" copyToOutput="true" flatten="false" />
</contentFiles>
</metadata>
<files>
<!-- Its a PackageReference project, so the files should be copied in the contentFiles folder, but to support package config, we copy it to the content folder as well -->
<file src="..\Changelog.txt" target="contentFiles/Docs" />
<file src="..\Changelog.txt" target="content/Docs" />
<!-- assembly files -->
</files>
</package>
I have the same issue, the content files are not copied to the bin
folder.
This is the content of the .nuspec
file:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
...
<dependencies>
<group targetFramework=".NETStandard2.0" />
</dependencies>
<contentFiles>
<files include="any\any\Data\fileA.json" buildAction="Content" copyToOutput="true" />
<files include="any\any\Data\fileB.json" buildAction="Content" copyToOutput="true" />
</contentFiles>
</metadata>
</package>
I also have this
<files include="**/KafkaCertificate/*.*" buildAction="EmbeddedResource" copyToOutput="true" />
When I install the NuGet package in .NET Core it sets the files under that directory to "Embedded Resource" and the copyToOutput is set to "Copy if newer", but same nuspec for .NET Framework does not work.
Both are getting built from the following command
nuget pack .\package.nuspec -OutputDirectory ..
I run the command from the bin
directory.
What am I doing wrong?
Here is my full package.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Redacted</id>
<version>4.6.0.102</version>
<title>Redacted</title>
<authors>Redacted</authors>
<owners>Redacted</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>.NET Framework 4.6+ - Package to log directly to Redacted (Kafka/Elastic/Kibana/ELK) </description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2022</copyright>
<tags>Redacted</tags>
<projectUrl>Redacted</projectUrl>
<dependencies>
<group>
<dependency id="Confluent.Kafka" version="1.7.0" />
<dependency id="librdkafka.redist" version="1.7.0" />
<dependency id="Newtonsoft.Json" version="13.0.1" />
<dependency id="System.Buffers" version="4.5.1" />
<dependency id="System.Memory" version="4.5.4" />
<dependency id="System.Numerics.Vectors" version="4.5.0" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" />
</group>
</dependencies>
<contentFiles>
<files include="**/KafkaCertificate/*.*" buildAction="EmbeddedResource" copyToOutput="true" />
</contentFiles>
</metadata>
<files>
<file src="Redacted.Middleware.Log.Elk.Framework.dll" target="lib\any\any" />
<file src="KafkaCertificate\**" target="content/KafkaCertificate" />
<file src="AppLogConfig.Example.json" target="content" />
</files>
</package>
I have the same problem as described. Any news about this issue?
Did anyone made this work? contentFiles and CopyToOutput works if the nuget is included on a .Net Core. Example:
<?xml version="1.0" encoding="utf-8"?>
but this does not work for .Net Framework projects.
Another option might be including a script to copy modify the content files to be set to "CopyToOutput" during the Nuget installation like suggested here: https://social.msdn.microsoft.com/Forums/azure/en-US/cb6236e8-4705-485b-a47c-cc4dc933c92c/nuget-package-to-copy-exe-content-file-to-project-output-directory?forum=visualstudiogeneral
Also, this will solve the issue for anyone facing it on .Net Core: https://www.jitbit.com/alexblog/303-nuget-authoring-copying-content-files-into-you-project-folder/
I seem to have the a problem with my, *.nuspec because when I build and use my package I see my files in the contentFiles directory but there are not copy in the bin/x64/Release directory in the project witch use the package. The files are just copied in the project directory (not in bin). Did I miss something ?
NuGet product used: NuGet.exe NuGet version: 5.4.0.6315 dotnet.exe: .NET Framework 4.5.2 OS version: Windows 10