【发布时间】:2013-03-06 21:42:45
【问题描述】:
我目前正在将一个相当大的解决方案从 VS2008 迁移到 VS2012。迄今为止,这个解决方案一直依赖于命令行构建几个构建步骤,我想正确使用项目系统来执行这些构建步骤。我经历了各种选择,并决定在大多数需要它的 VC++ 项目中自定义构建步骤是有意义的。解决方案是 C++、C# 和 VB 的混合。
这些任务包括构建主互操作程序集和使用第三方实用程序处理输出文件,其中输入和输出是相同的。
我遇到了一些初期问题,但我大部分时间都在使用这种方法。剩下的问题是将这些额外的输出部署到依赖项目。
考虑一下;我有一个第三方组件,给定 a.dll 的输入会产生两个输出,一个修改后的 a.dll 和 a_util.dll。当我有一个依赖于 a.dll 的项目时,我现在需要该项目将 a_util.dll 也拉到它的输出中。我希望 VS2012 中自定义构建步骤中的“将输出视为内容”字段在这方面有所帮助,但我只是在 UI 中使用单行,我找不到关于此选项的任何全面文档.事实上,MSDN documentation 只是假装这个选项不存在。
如果有人可以帮助解释此选项或替代方法,那就太好了。
编辑
目前,我正在向每个依赖项目添加一个 BeforeBuild 目标,以将其他输出复制到该依赖项目中。这种方法的问题(虽然它有效)是维护问题之一。不幸的是,如果错过了这种类型的依赖,它会导致一个神秘的运行时错误。
【问题讨论】:
-
是否可以使用ILMerge,所以第三方组件将a.dll转为修改后的a.dll? (a.dll和a_util.dll的组合)
-
@ccppjava - 不,这不是一个选项...... util 库完全是原生的。
标签: build visual-studio-2012 msbuild