在csproj上的nuget包,因为readme.txt的行为不符合预期

时间:2015-01-17 19:51:02

标签: nuget

有没有办法让nuget使用" nuget pack"来获取.csproj中包含的readme.txt文件。这样的话 package安装了readme.txt文件在VS?中自动打开

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

在.csproj上使用nuget pack时,行为是这样的,即项目的自述文件包含在"内容"夹 代替。在这种情况下,有没有办法让nuget包在该部分中包含自述文件,以便它的行为 与手动创建nuspec并在文件夹的根目录中添加readme.txt相同

1 个答案:

答案 0 :(得分:3)

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

  1. 确保readme.txt的构建操作(在“属性”下)为"无",而不是"内容"。这可以防止在打包csproj时将其放在\content文件夹下。
  2. 如果您还没有MyProject.nuspec个文件,请在与MyProject.csproj相同的文件夹中创建一个文件。这应该使用Creating And Publishing A Package($ id $,$ version $等)中定义的替换标记,以避免重复项目本身中指定的任何内容(例如,在AssemblyInfo.cs中)。
  3. 在nuspec文件中添加<files>部分,其中仅包含 readme.txt,如下所示:
  4.   <files>
        <file src="readme.txt" target="" />
      </files>
    

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

    我已经用NuGet 2.8.60717.93测试了这个。