将构建拆分为多个输出,同时维护Web服务文件夹结构

时间:2012-03-26 14:50:41

标签: web-services msbuild

一年多前,我发布了一个关于splitting a build into multiple outputs的问题并跟随recommended solution。现在我需要建立一点点。该解决方案包含三个产生可部署位的项目,然后包含一些其他项目,这些项目包含可部署项目(业务逻辑和数据访问类型的东西)共有的代码。在三个可部署项目中,其中两个是Windows服务,另一个是wcf webservice。我可以在本地构建所有这些,但是当我在构建服务器上构建它时,事情变得有点奇怪。

当我在本地构建我的webservice项目时,我得到一个像这样的文件夹结构:

-Published Websites
   Service file
   Config file
   -Bin
       Service DLL’s

这是webservice的理想输出,但我不想在本地构建。当我最初在构建服务器上构建时,所有内容都像这样混杂在一起:

-Published Websites
   Service file
   Config file
   -Bin
       Service DLL’s
 All windows service exe's
 All DLL's needed by the service exe's

我遵循了本文开头链接的文章中的建议。简而言之,我对构建模板进行了更改,并在项目文件中调整了输出路径。这导致我的构建输出如下所示:

Build Folder
 -WIN SERVICE 1
   EXE’s
   DLL’s
 -WIN SERVICE 2
   EXE’s
   DLL’s
 -WEBSERVICE
   DLL’s

这里的问题是webservice的文件夹结构不完整(svc和config文件以及bin文件夹都丢失了)。我需要这个结构,因为我不直接部署到Web服务器,我们使用暂存位置。我宁愿不将Web服务拆分成自己的解决方案,因为它在逻辑上与Windows服务和解决方案中的所有常用代码相关。

因此,最大的问题是如何设置可以输出多个目录的构建,但其中一个目录是Web服务,它包含适当的文件和目录结构?

1 个答案:

答案 0 :(得分:0)

我能够提出的唯一解决方案是为此解决方案提供两种不同的构建。一个构建Web服务,另一个构建Windows服务。这使我可以将解决方案保持在一起。我们只需要记住在公共代码更改时运行这两个版本。

欢迎对此解决方案提出任何建议/改进。