我创建了一个nuget包(让我们将其命名为Web.Content),其中包含许多js,css和其他内容(名为Web)。在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。
答案 0 :(得分:1)
据我所知,NuGet使用somуVS API在软件包安装过程中复制文件。此API使SVN认为文件已删除并添加了新文件(可能是因为安装了VisualSVN或AnkhSVN)。 所以我们决定采取下一步措施:
但是在安装此类软件包之后,我们的内容项目似乎没有出现在应该出现的位置。我的同事在NuGet帮助中搜索了一些信息 - “软件包必须在内容或lib文件夹中包含Install.ps1才能运行的文件。只是在tools文件夹中有一些东西不会启动它。”我们将一个虚拟文件放入“Content”文件夹,Install.ps1脚本开始根据需要从“fs_content”文件夹中复制我们的内容。
现在,SVN仅确定某些文件中所做的更改。