NuGet Package Manager可随时间管理硬盘驱动器中的包

NuGet Package Manager可随时间管理硬盘驱动器中的包,nuget,diskspace,Nuget,Diskspace,我有一个应用程序,它使用NuGet包来管理应用程序实例可用的工具版本 例如,在测试管理器中,管理器执行的实际测试包含在.nupkg文件中。如果要更改执行的测试,只需替换.nupkg文件。当应用程序运行时,它会找到包,并使用包管理器将所有文件取出并添加到我的应用程序域中 包管理器将所有文件提取到一个临时文件夹中,并返回提取到的目录 不幸的是,由于OptimizedZipPackage中的这段代码,每次应用程序运行时,它都会提取到一个新的随机位置: 受保护的虚拟字符串GetExpandedFolde

我有一个应用程序,它使用NuGet包来管理应用程序实例可用的工具版本

例如,在测试管理器中,管理器执行的实际测试包含在.nupkg文件中。如果要更改执行的测试,只需替换.nupkg文件。当应用程序运行时,它会找到包,并使用包管理器将所有文件取出并添加到我的应用程序域中

包管理器将所有文件提取到一个临时文件夹中,并返回提取到的目录

不幸的是,由于OptimizedZipPackage中的这段代码,每次应用程序运行时,它都会提取到一个新的随机位置:
受保护的虚拟字符串GetExpandedFolderPath()
{
返回Path.GetRandomFileName();
}

是的,它是虚拟的,我可以在我自己版本的包中重写它,但是为了使用我自己版本的包,我还必须拥有我自己版本的LocalPackageRepository类,带有重写


我所希望的是一种获得固定文件夹名称的方法,这样它就可以每次对相同的包/版本使用相同的文件夹,而不必编写重写类

如果您需要固定的文件夹名称,那么唯一的方法就是按照您的建议—使用您自己的LocalPackageRepository版本。如果您只关心使用的磁盘空间,那么可以调用OptimizedZipPackage.PurgeCache()。Visual Studio和NuGet.exe在关闭时调用此命令。为什么要让此目录无限期填满?是否有一些建议的最佳实践来管理此问题?在我们的工作站和TFS构建代理上,这些文件夹变得相当大。我可以设置一个计划任务或手动调用PurgeCache,但这样做似乎有点过分;直接的,它什么也没做。它是否需要某种特殊的设置,或者您不能手动调用它?无论如何,它肯定不会清除我的机器或我们的TFS构建代理上的任何内容。