0

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

4

1 回答 1

0

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

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

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

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

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

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

  3. 任何冲突的类名同上。虽然我希望如果你有很多重叠,无论如何它大多被重构为一个单独的库。

于 2013-04-05T21:48:41.687 回答