NuGet包更新将删除未更改的文件

NuGet包更新将删除未更改的文件,nuget,nuget-package,Nuget,Nuget Package,我为我的另一个包(名为Web)创建了一个包含大量js、css和其他内容的nuget包(我们称之为Web.Content)。在nuspec文件中,我有文件部分 <file src="Content\**\*.*" target="content\Content" /> 我对Content文件夹中的一些文件进行了更改,然后创建了一个新版本的Web.Content包 我有一个项目,其中包括Web和Web.Content包。创建了新版本的Web.Content包之后,我通过nuget在

我为我的另一个包(名为Web)创建了一个包含大量js、css和其他内容的nuget包(我们称之为Web.Content)。在nuspec文件中,我有文件部分

<file src="Content\**\*.*" target="content\Content" />

我对Content文件夹中的一些文件进行了更改,然后创建了一个新版本的Web.Content包

我有一个项目,其中包括Web和Web.Content包。创建了新版本的Web.Content包之后,我通过nuget在我的项目中更新了它。当我尝试提交项目的更改时,SVN建议我提交Web.Comment包的所有内容。 据我所知,当更新nuget软件包时,所有目标文件夹“content\content”都被删除并再次从软件包中复制。 但我需要SVN只跟踪在几个文件中所做的更改,我不想看到数千个更改的文件,因为实际上只在其中一些文件中进行了更改

如何使nuget仅复制已更改的文件?我应该更改我的nuspec文件还是应该为我的包创建一些PS脚本来覆盖delete'n'copy nuget包更新行为

这将是伟大的,有一些例子或链接


尝试使用NuGet 2.6.40627.9000和Tortoise SVN 1.7.7。

据我所知,NuGet在软件包安装过程中使用somèVS API复制文件。此API使SVN认为该文件已被删除并添加了一个新文件(可能是因为安装了VisualSVN或AnkhSVN)。 因此,我们决定采取以下步骤:

  • 将我们的内容项放在名称不同的文件夹中 “内容”(让我们称之为“fs_内容”),因为 包中的文件夹触发NuGet通常的安装行为,但是 我们不需要NuGet以常规方式安装我们的内容
  • 编写自己的install.ps1脚本,将内容文件复制到 目标并将其放入Tools package文件夹
  • 但在安装了这样的软件包之后,我们的内容项并没有出现在它们应该出现的地方。我的同事在NuGet帮助中搜索了一些信息—“要运行Install.ps1,软件包必须在content或lib文件夹中有文件。仅仅在tools文件夹中有一些文件并不能启动它。”我们将一个虚拟文件放入“content”文件夹,Install.ps1脚本开始根据需要从“fs_content”文件夹复制我们的内容

    现在SVN只正确地确定在某些文件中所做的更改