csproj上readme.txt的nuget pack未按预期运行

csproj上readme.txt的nuget pack未按预期运行,nuget,Nuget,有没有办法让nuget使用“nuget pack”获取.csproj中包含的readme.txt文件,以便 软件包已安装。readme.txt文件将在VS中自动打开 当我手工创建nuspec并在部分中列出readme.txt文件时,readme.txt文件与nuspec文件位于同一级别,在nuspec上运行nuget pack是正确的 在.csproj上使用nuget pack时,其行为是将项目的自述文件包含在“内容”文件夹中 相反在这种情况下,有没有办法让nuget pack将自述文件包含在部

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

当我手工创建nuspec并在部分中列出readme.txt文件时,readme.txt文件与nuspec文件位于同一级别,在nuspec上运行nuget pack是正确的

在.csproj上使用nuget pack时,其行为是将项目的自述文件包含在“内容”文件夹中 相反在这种情况下,有没有办法让nuget pack将自述文件包含在部分中,以便其正常工作
与手动创建nuspec并在文件夹的根目录下添加readme.txt相同

是的,您需要做一些事情。假设您的项目名为MyProject

  • 确保readme.txt的构建操作(在属性下)为“无”,而不是“内容”。这可防止在打包csproj时将其置于
    \content
    文件夹下
  • 如果您还没有
    MyProject.nuspec
    文件,请在与
    MyProject.csproj
    相同的文件夹中创建一个。这应该使用($id$、$version$等)中定义的替换标记,以避免重复项目本身(例如,AssemblyInfo.cs)中指定的任何内容
  • 在nuspec文件中添加一个
    部分,该部分仅包含
    readme.txt
    ,如下所示:
  • 完成此操作后,当您运行
    nuget pack MyProject.csproj
    时,它将把readme.txt放在包根目录下,并将为DLL创建相应的
    \lib
    文件夹。安装软件包将自动打开readme.txt,而不会将其作为内容添加到目标项目中

    我已经用NuGet 2.8.60717.93测试过了

    <files> <file src="readme.txt" target="" /> </files>