Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在TFS中更新nuget包时处理挂起的删除_Asp.net Mvc_Tfs_Nuget - Fatal编程技术网

Asp.net mvc 在TFS中更新nuget包时处理挂起的删除

Asp.net mvc 在TFS中更新nuget包时处理挂起的删除,asp.net-mvc,tfs,nuget,Asp.net Mvc,Tfs,Nuget,我们有一个内部开发的Nuget软件包,它向任何引入它的项目添加了大量与MVC相关的资产—在Views\Home文件夹中的Index.cshtml视图、一个HomeController和Controllers文件夹以及一个Content文件夹,其中包含一些静态文件. 每次我们创建包的新版本并将其拉入TFS源代码控制下的项目中时,首先卸载包的当前版本(标准Nuget行为)。这将导致源代码管理中的所有资产都处于挂起删除状态。每当清空文件夹中的所有文件时,该文件夹也会处于挂起删除状态 当安装新版本的N

我们有一个内部开发的Nuget软件包,它向任何引入它的项目添加了大量与MVC相关的资产—在
Views\Home
文件夹中的
Index.cshtml
视图、一个
HomeController
Controllers
文件夹以及一个
Content
文件夹,其中包含一些静态文件.

每次我们创建包的新版本并将其拉入TFS源代码控制下的项目中时,首先卸载包的当前版本(标准Nuget行为)。这将导致源代码管理中的所有资产都处于挂起删除状态。每当清空文件夹中的所有文件时,该文件夹也会处于挂起删除状态

当安装新版本的Nuget软件包时,软件包管理器会抛出错误,因为它试图复制的资产已设置为删除,或者父项在文件夹中设置为删除


有没有办法解决这种情况,或者在安装新软件包时强制TFS有效地取消删除资产,或者在卸载时不首先删除资产?

虽然有一些钩子和方法可以处理这种情况(连接到
ivspackageinstallevents
或通过
init/install/uninstall.ps1
脚本对其进行管理,使用Nuget软件包还原可能更容易


建议的做法是不要将“packages”文件夹签入源代码管理,而是在生成过程中使用NuGet package restore来还原包。详细信息。

我相信在最新的TFS/Visual Studio/NuGet组合中已经修复了这一问题

所以坚持下去,希望就在这里


但是,对于那些仍然停留在较旧版本上的人,我发现手动从packages.config中删除包条目最容易,然后使用nuget package manager进行安装(而不是更新)最新版本的软件包副作用最小。

同意。我始终使用软件包还原。这里的问题不是软件包文件夹的内容。而是软件包安装到目标项目中的特定文件(不是二进制文件,而是实际的代码文件)。必须将这些资产签入TFS,因为我们的部署生成将web项目文件安装到目标服务器上,如果这些文件被从TFS中排除,这些部署生成将失败。您是否找到解决此问题的方法?我们内部开发的NuGet软件包和软件包所依赖的非托管DLL也存在同样的问题。确实如此有类似的问题。它似乎与本地工作区有关,并且与更新包中的一定数量的文件有关,因为我们的一个包只包含两个文件,并且它们被正确标记为“已更改”由我们的TFS提供。您也在使用本地工作区吗?您的软件包中包含多少文件?我也在使用本地工作区。软件包中有5个文件、1个控制器、1个视图和3个其他资产。每个文件夹中都没有任何其他文件,因此卸载软件包时,文件所在的文件夹将被删除ked as pending delete。如果包中的某个文件在安装后被更改,Nuget似乎足够聪明,可以忽略该文件(或者至少可以让您选择忽略该文件),而不删除该文件。这些文件在TFS中标记为已修改。因此我认为您还没有找到解决方案。这太遗憾了。;)实际上,我已将我的工作区转换回服务器工作区,不再存在这些问题。可能是一个真正的NuGet bug?(请参阅,尽管它在一段时间前已关闭).不,还没有解决方案。为工作区的问题干杯。这可能是一个解决方法。如果可以避免的话,我真的不想回到服务器工作区。看起来这个问题仍然存在,但没有解决方案。啊,joys…刚刚发现你的问题是试图为完全相同的问题找到解决方案。有关于这方面的消息吗照片?