存放文件和NuGet包的文件夹的根文件夹

问题描述:

我想我的打包项目文件,并使用像这样创建的NuGet包: 的NuGet包file.csproj -p配置= $(ConfigurationName); -NoPackageAnalysis存放文件和NuGet包的文件夹的根文件夹

但问题是它的将文件/文件夹相关的“内容”文件夹和组件项目在“LIB”文件夹,但我想要的文件/文件夹的根目录,图书馆,文件夹类似这个 。 enter image description here 但现在我的文件夹结构是这样的: enter image description here

我nuspec文件的结构是

<?xml version="1.0"?> 
<package > 
    <metadata> 
     <id>$id$</id> 
     <version>$version$</version> 
     <title>$title$</title> 
     <authors>abc</authors> 
     <owners>abc</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>abc</description> 
     <releaseNotes></releaseNotes> 
     <copyright>Copyright 9999</copyright> 
     <tags></tags> 
    </metadata> 
    <files> 
     <file src="bin\**" target="bin" /> 
     <file src="$target$\**\*.*" target=""/> 
    </files> 
</package> 

即使不包括在第二图像显示相同的输出结构我nuspec文件结果。我正在使用nuget版本4.1.0,我也尝试使用早期版本的nuget,如2.8.6

你应该创建一个自定义.nuspec文件

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
     <id>title</id> 
     <version>1.0.0</version> 
     <authors>abc</authors> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>desc</description> 
    </metadata> 
    <files> 
     <file src="bin\Debug\bin\*.*" target="bin" /> 
     <file src="bin\Debug\fonts\*.*" target="fonts" /> 
     ............ 
    </files> 
</package> 

我这个努力为好,但要了解<files />收集/package<contentFiles />收集/package/metadata之间的区别是很重要的。

<files />集合告诉的打包哪些文件就摆在你的包,在包的libcontenttools目录。

注意:你不需要使用这个集合,你也可以使用a convention-based working directory

<contentFiles />集合告诉包的消费者如何使用包中包含的文件。

在你的情况.nuspec文件应该是这个样子(真的不知道有关$target$部分,但:

<?xml version="1.0"?> 
<package > 
    <metadata> 
     <id>$id$</id> 
     <version>$version$</version> 
     <title>$title$</title> 
     <authors>abc</authors> 
     <owners>abc</owners> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <description>abc</description> 
     <releaseNotes></releaseNotes> 
     <copyright>Copyright 9999</copyright> 
     <tags></tags> 
     <contentFiles> 
      <files include="bin/**" buildAction="None" copyToOutput="true" /> 
     </contentFiles> 
    </metadata> 
    <files> 
     <file src="bin\**" target="content\bin" /> 
     <file src="$target$\**\*.*" target="content"/> 
    </files> 
</package> 
+0

这个回答似乎很有希望,但似乎'contentFiles'实际上是不同的概念:它只适用于不可变(不可编辑)的内容文件。请参阅这里的emgarten的评论: https://github.com/NuGet/Home/issues/2060 因此,我试过你的答案,但可惜它没有工作 –