如何处理需要它们的项目中的30k文件?

时间:2010-03-19 18:50:40

标签: visual-studio silverlight project-management architecture

Visual Studio 2010 RC - > Silverlight应用程序

我们有一个我们需要访问的图像库。它们是从供应商(通过安装程序)提供给我们的,它们不在数据库中,它们是文件夹中的文件(文件夹中非常大的怪物)。我们无法控制图像何时更改,因此供应商需要能够单独覆盖它们。我们从这家供应商那里经常获得更新,以表明这些图像“随机”变化而没有我们(程序员)的知识。

问题:我不想在SVN中使用30K图像。哎呀,我甚至不想在我的解决方案中想象它们。但是,我们的应用程序需要它们才能正常运行。因此,我们的构建/登台服务器需要访问这些映像(我们有两个构建服务器)。

问题:如果您的应用程序在没有访问每个30k图像的情况下无法正常工作并且您无法控制这些图像何时发生变化,您将如何处理?

我不想拥有一个疯狂的大型SVN存储库。因为我不知道这些图像何时发生变化,我真的不希望它们出现在我的解决方案中(绝对不需要大型解决方案)。每次这些图像发生变化时,我也不希望做一堆手动步骤。

到目前为止,我们的口头禅始终是,任何开发人员都可以从SVN下载,编译并运行我们的应用程序。这些图像将杀死那个咒语。

我很想制作一个WCF服务,如果它们存在则返回图像,如果不存在则返回虚拟图像。这样,所有开发框都将返回一个虚拟图像,我们的构建/暂存/生产框将返回真实图像(实际安装了供应商图像安装程序的图像)。

这必须是一个已解决的问题。

其他人为解决这些类型的问题做了什么?

我愿意接受建议。

6 个答案:

答案 0 :(得分:3)

通常需要大量图片,特别是高达30k的图片,您需要一个专门用于图片的内容分发网络。它不应该只是设置一个简单的HttpHandler来处理请求,而这些请求可以将这些照片返回给您的应用程序。

答案 1 :(得分:1)

我强烈反对将图像存储在源代码管理中,特别是如果它们要经常更改的话。此外,将这些图像中的每一个添加到项目/解决方案中可能会破坏VS中的性能。

我认为为开发者提供虚拟图像的想法很好。作为部署过程的一部分,您可以在构建脚本中添加一些内容,将图像复制到正确的位置。

答案 2 :(得分:0)

过去,我在IIS中创建了一个虚拟目录,其唯一目的是提供图像。

答案 3 :(得分:0)

如果源控件中没有这些图片,则它们不在您的版本中,并且不随部署包一起提供。

因此,您的应用程序应该使用和不使用图像文件。如果图像丢失,返回假人可能是一种安全的解决方案。

答案 4 :(得分:0)

我认为在分支之间合并图像将是一个史无前例的噩梦所以我同意你应该让它们远离CVS / SVN

您必须问自己的问题是,开发人员级别的项目图像是不可或缺的?虚拟图像的想法将是一个合适的答案。

答案 5 :(得分:0)

我肯定会建议不要将这些图像保存在源代码管理中。

我不知道您的应用程序访问文件的方式。

如果是通过文件系统,如何将中央映像目录的硬链接放入存储库?这样,您的开发人员可以检查应用程序,并从一开始就拥有正常工作版本(前提是可以检查存储库中的Windows硬链接,否则可能需要一些脚本。)

相关问题