Visual Studio:Pre-Build将目录内容添加到项目中

时间:2012-06-07 12:17:15

标签: visual-studio-2010 visual-studio msbuild projects-and-solutions

我有以下设置:

  • 主要网站 - MVC 3项目,将在www.domain.com上托管

  • Intranet Web App - 在admin.domain.com上托管的MVC 3项目,Windows身份验证,只能从本地子网内访问。

  • CDN网站 - 一个简单的网络应用程序,仅为上述两种图像提供图像。当我们上线时,它将在cdn.domain.com上托管(公开)。我在开发过程中设置了一个模拟CDN的本地项目。

我编写了一个业务层,允许管理面板中的用户上传图像,然后将图像物理保存到已配置的CDN路径(当前在本地计算机上,即C:\ Code \ SolutionName \ CDNProject \ images) 。然后,主网站使用相同的业务层通过http://cdn.domain.com/images/查找和分发图像。我们开发时http://cdn.domain.com目前设置为http://localhost:55555

每当通过管理面板创建图像时,它都是在磁盘上物理创建的。每个开发人员都在他自己的机器上工作,我们希望能够暂时将这些文件检入TFS。您可能已经猜到,将文件添加到文件系统不会自动在项目中引用它们:

Broken references

我认为可能有某种方法可以将这些图像作为资源引用,或者将目录设置为各种“内容”目录......但我找不到任何内容。

一些开发人员通过VPN远程工作,并且无法访问本地网络(仅限TFS),因此网络路径不是可接受的解决方案。

我以为我可以设置预构建事件,将目录中的所有文件添加到项目中?

2 个答案:

答案 0 :(得分:1)

没有非常简单的方法可以做到这一点。有几种方法可以考虑:

1)编写VS添加,将新文件添加到项目中(通过DTE - starting point)。了解如何在Pre-Build步骤中自动运行此VS插件。将此插件安装到开发人员计算机上。

2)扩展您的管理逻辑,通过TFS API

自动将上传的文件签入TFS

3)尝试应用更为柔和的技术,例如:T4 Tutorial: Integrating Generated Files in Visual Studio Projects

希望有所帮助,

答案 1 :(得分:0)

Visual Studio项目文件具有XML语法。可以在简单的文本编辑器中修改项目文件属性(添加/删除文件等)。

您可以创建一个脚本来打开您的解决方案,在实际打开解决方案之前,您可以扫描该目录并在项目文件中“注入”文件(使用适当的XML标记)。

我认为您不能将其添加为预构建事件,因为项目文件已在此时加载,并且您无法在使用它们时对其进行修改。