【发布时间】:2013-08-31 18:47:37
【问题描述】:
我们有一个内部开发的 Nuget 包,并在任何项目中添加了许多 MVC 相关资产 - Views\Home 文件夹中的 Index.cshtml 视图、HomeController 和 @ 987654325@ 文件夹和一个 Content 文件夹,其中包含一些静态文件(以及其他文件)。
每次我们创建新版本的包并将其拉入 TFS 源代码控制下的项目时,都会首先卸载当前版本的包(标准 Nuget 行为)。这会导致所有资产都被置于源代码控制中的挂起删除状态。每当一个文件夹中的所有文件被清空时,该文件夹也会进入待删除状态。
当安装新版本的 Nuget 包时,包管理器会抛出错误,因为它尝试复制的资产已设置为删除,或者在文件夹的情况下父级设置为删除。
有没有办法处理这种情况,要么在安装新包时强制 TFS 有效地取消删除资产,要么在卸载时不首先删除它们?
【问题讨论】:
-
我们确实有类似的问题。它似乎与本地工作区和更新包中的一定数量的文件有关,因为我们的一个包只包含两个文件,并且它们被我们的 TFS 正确标记为“已更改”。那么您也在使用本地工作区吗?您的包中包含多少个文件?
-
我也在使用本地工作空间。包中有 5 个文件、1 个控制器、1 个视图和 3 个其他资产。每个进入的文件夹中没有任何其他文件,因此当软件包被卸载时,文件所在的文件夹被标记为待删除。如果安装后更改了作为软件包一部分的文件,Nuget 似乎足够聪明地忽略它(或者至少让您可以选择忽略它)而不删除该文件。这些文件在 TFS 中被标记为已修改。
-
所以我认为您还没有偶然发现解决方案。真可惜。 ;) 我实际上求助于将我的工作区转换回服务器工作区,并且不再有这些问题。可能是一个实际的 NuGet 错误? (请参阅this official issue,尽管它已关闭一段时间)。
-
不,还没有解决方案。为有关工作空间的提醒干杯。这可能是一种解决方法。如果可以避免的话,我真的不想改回服务器工作区。看起来这个问题仍然存在,但没有解决方案。啊,快乐...
-
刚刚发现您的问题是试图为完全相同的问题找到解决方案。有关于这个话题的消息吗?
标签: asp.net-mvc tfs nuget