0

我有多个解决方案,每个解决方案都有多个项目。

我想要做的是将这些项目的一个子集从可能不同的解决方案组装到一个“包”中,并按原样进行部署。

我可以编辑每个项目并更改它的输出文件夹,但这会适得其反,尤其是其中一些项目是不同目标包之间的共享依赖项。这会造成繁琐的混乱并且非常容易出错。

理想情况下,我也希望在最终包中如何组装这些方面有一些自由,也许这个应用程序放在包的根文件夹中,但也许这个其他可执行文件将放在最终包的子文件夹中。

最后,与我合作的团队对 MSBuild 并不熟悉,因此最终的解决方案应该可以从 VisualStudio 中使用。

我正在考虑创建一个任务来扫描项目依赖项并简单地将每个输出文件夹的内容复制到专门项目的输出文件夹中(将包含该任务)。如有必要,可以通过属性文件对最终目的地进行微调。

有没有更好的办法 ?


包我只是指包含所有工件的文件夹,它们可能是可执行文件、DLL、资源、配置文件等。但是,我仍然希望将它们作为单独的实体保存。

4

2 回答 2

0

我假设您正在尝试获取没有外部 dll 的单个可执行文件。为此,请使用 exe 上的编译后事件来调用ILMerge以将 exe 和 dll 组合成一个 exe。

http://www.microsoft.com/en-us/download/details.aspx?id=17630

于 2012-08-24T16:48:13.733 回答
0

我最终创建了一个新的输出文件夹,在其中复制了项目构建的输出。然后其他依赖于第一个项目的项目将提取内容并与他们的内容合并,然后再处理他们自己的额外输出文件夹以沿着依赖关系树重复该过程。

这确保了所有工件都遵循最终应用程序的构建,而不仅仅是 DLL。

我当时需要它,然后将整个内容打包在一次点击存档中。

它也适用于构建系统,因为该额外文件夹被压缩为下游项目可以使用和合并的人工制品。虽然不是很干净,但足以满足我的需要。事后看来,我可能已经利用 nuget 以更清洁和可维护的方式实现相同的结果。

于 2016-10-14T16:29:21.513 回答