NuGet包 - readme.txt被添加到目标项目,而不是仅显示

时间:2018-02-19 08:53:51

标签: visual-studio-2017 nuget readme

我负责在我们公司发布的库作为NuGet包,我按照“Adding a readme and other files”指南显示readme.txt,其中包含用户在使用Visual时安装或更新包时的重要更改工作室。这是有效的 - 即当你安装包时,会显示readme.txt。但是,在安装软件包时,此readme.txt文件也会被复制到目标项目的根目录中。

有谁知道如何阻止这种情况(即在安装时显示readme.txt,但将其添加到目标项目中)?用户查看此文件非常有用,但如果将其添加到项目中则会感到困惑。

库的.nuspec如下所示:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <projectUrl>http://example.com/blah/blah</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
  </metadata>
  <files>
    <file src="README.txt" target="" />
  </files>
</package>

打包+推送通常由TeamCity构建步骤执行,但如果我使用以下命令行构建pkg,则会出现相同的行为:

$ nuget pack MyLibrary.csproj
$ nuget push MyLibrary-{version}.nupkg -source {internal-nuget-server}

2 个答案:

答案 0 :(得分:2)

这里的问题是我README.txt文件中包含.csproj <Content include...>文件时<None include...>真的应该是version: '2' - 抱歉这有点像红色鲱鱼,因为我没有在我的问题中包含这些信息!

答案 1 :(得分:0)

  

有谁知道我怎么能阻止这个

要解决此问题,请确保将.nuspec文件和README.txt部分中的<files>文件打包在未定位到 {{1} }。以下是我的测试步骤:

  1. 创建测试示例项目“content

  2. 通过命令TestReadmeFile在与.nupsec相同的文件夹中创建TestReadmeFile.csproj文件,然后替换已定义的令牌($ id $,$ version $等)

  3. 在nuspec文件中添加一个只包含readme.txt的部分,如下所示:nuget.exe spec "TestReadmeFile.csproj"

  4. 以下是我的.nuspec文件:

    <file src="readme.txt" target="" />
    1. 通过命令行打包.nuspec:<?xml version="1.0"?> <package > <metadata> <id>TestReadmeFile</id> <version>1.0.0</version> <authors>Tester</authors> <owners>Tester</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Package description</description> <releaseNotes>Summary of changes made in this release of the package.</releaseNotes> <copyright>Copyright 2018</copyright> <tags>Tag1 Tag2</tags> </metadata> <files> <file src="bin\Debug\TestReadmeFile.dll" target="lib\net462" /> <file src="README.txt" target="" /> </files> </package>
    2. 创建该软件包后,软件包将自动打开readme.txt ,不用将其添加到目标项目中。