1

我为第 3 方应用程序构建扩展。我们无权访问源代码。Visual Studio 有一个后期构建命令,用于将文件复制到所述程序的程序集目录。

copy $(TargetDir)$(TargetName).pdb "$(ProgramDropDir)"
copy $(TargetDir)$(TargetName).dll "$(ProgramDropDir)"

当程序启动时,它会加载程序集(实际上它们是在需要时加载的,我认为这是因为 JIT 编译)。我们的应用程序由 49 个程序集组成。部署它们非常慢。我可以通过在项目级别构建来绕过缓慢的构建。这仅构建引用的程序集。这在 95% 的情况下仍然存在问题。通常,实际上只有 1 个程序集发生了变化……但所有程序集都被复制了。

如何改进这个过程?理想情况下...

A. 仅在程序集发生更改时才部署它们。
B. 仅在项目文件发生更改时构建。
C. 仅在我计划运行主应用程序时复制。EG 运行单元测试时不要复制。
D. 运行 3rd 方应用程序时构建失败。我必须关闭应用程序。这意味着我必须重新登录应用程序并等待它加载(它是一个加载缓慢的野兽)。

我拥有 TFS2010。如果绝对有必要,我愿意接受新工具。

4

1 回答 1

0

A.您可以使用RoboCopy来执行此操作。默认情况下,如果源和目标具有不同的时间戳或不同的文件大小,RoboCopy 只会复制文件。

如果您想使用 MSBuild 执行此操作,还可以使用MSBuild 扩展包中的 RoboCopy 任务。

B.如果您使用 CI 服务器,您可以使用轮询 SCM 机制,该机制在 SCM 中发生更改时启动构建。

我不确定你对最后一个的意思。当您“运行”应用程序或某些单元测试时,不会触发任何构建。

于 2012-05-30T22:12:05.893 回答