在Visual Studio中合并Web应用程序项目

时间:2013-04-05 19:43:39

标签: visual-studio visual-studio-2012 web

我的解决方案中有42个不同的Web应用程序项目,我想将它们全部合并到一个Web应用程序中。有没有相对无痛的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

Visual Studio有两种类型的Web项目: Web应用程序网站

Web应用程序项目(WAP)就像VS中的任何其他项目一样:有一个.csproj或.vbproj文件,其中包含构建设置,项目中包含的文件,以及所有优秀的MSBuild内容。如果你有一堆使用相同语言(VB / C#),那么主要是将所有文件添加到一个项目中。如果您有单独的语言,则无法将它们组合在一起,您必须保留单独的项目或将一种语言移植到另一种语言; MSBuild只为每个项目调用一个编译器。 (您可以稍后将程序集与ILMerge合并,但您仍需要自己组合所有项目的标记文件。)

网站项目(WSP)略有不同。至于将文件包含到项目中,它们只是查看文件系统上的内容(而基于MSBuild的项目基本上只包含所包含文件的白名单)。此外,由于WSP不是由MSBuild编译的,因此可以在单个项目中混合使用不同的语言,但您必须自己配置(请参阅http://msdn.microsoft.com/en-us/library/ms366714.aspx了解其工作原理)。

假设您只处理共同语言的WAP并且您只是想减少要维护的项目数量,我想不出比仅仅开始将现有文件添加到整合项目更好的策略。您可能会遇到以下任何问题:

  1. 每个单独的项目都像自己的IIS应用程序一样。这对于依赖/ bin文件夹(即任何代码)或使用~/ URI来引用该项目中的内容的任何内容都很重要。这将阻止您在MasterProject中为每个要移动的子应用程序创建一个文件夹。 VS中确实没有一个好的设计可以解决这个问题,除了有单独的项目(显然不能满足你的需求......)。因此,您可能必须将文件添加到同一个根文件夹中。

  2. 必须整理任何重复的文件名。或者,使用web.config,您可能必须合并文件内容。

  3. 同样存在任何冲突的类名。虽然我希望如果你有很多重叠,但它总是被重构成一个单独的库。