对于readme.txt,nuget pack在csproj上的行为不像预期的那样

有没有办法让nuget使用“nuget pack”来获取包含在.csproj中的readme.txt文件,以便在安装包时,readme.txt文件会在VS中自动打开?

当我手工创建nuspec并在节中列出readme.txt,以使readme.txt文件与nuspec文件位于同一级别时,在nuspec上运行nuget pack会做正确的事情。

当在.csproj上使用nuget pack时,尽管行为是这样的,即项目的自述文件被包含在“Content”文件夹中。 在这种情况下,是否有办法让nuget pack将自述文件包含在该部分中,以便它的行为与手动创建nuspec相同,并在文件夹的根目录添加readme.txt


是的,你需要做一些事情。 假设你的项目叫做MyProject。

  • 确保readme.txt的Build Action(在属性下)是“None”,而不是“Content”。 这可以防止在打包csproj时将它放在content文件夹下。
  • 如果您还没有MyProject.nuspec文件,请在与MyProject.csproj相同的文件夹中创建一个文件。 这应该使用在创建和发布包($ id $,$ version $等)中定义的替换标记来避免重复项目本身中指定的任何内容(例如,在AssemblyInfo.cs中)。
  • 在nuspec文件中添加<files>部分,其中只包含readme.txt ,如下所示:
  •   <files>
        <file src="readme.txt" target="" />
      </files>
    

    完成此操作后,当您运行nuget pack MyProject.csproj ,它会将readme.txt放在程序包根目录下,并为您的DLL创建相应的lib文件夹。 安装软件包将自动打开readme.txt,而不会将其作为内容添加到目标项目中。

    我已经用NuGet 2.8.60717.93测试过了。

    链接地址: http://www.djcxy.com/p/24289.html

    上一篇: nuget pack on csproj for readme.txt not behaving as expected

    下一篇: Julian day from DateTime