重新编译所有依赖项

时间:2011-03-22 15:22:02

标签: c# visual-studio-2008

我有一个简单的项目,用于许多其他解决方案。每当我更新这个项目时,我都要记得进入使用该项目的其他解决方案,并重新编译和部署。

有没有办法实现自动化?

6 个答案:

答案 0 :(得分:4)

如果您使用任何类型的持续集成工具,例如TeamCityJenkinsCruise Control,您可以自动提交其他解决方案。

当您依赖的API发生变化时,我总是对任何不需要重新编译的解决方案感到不安。在没有重建的情况下更新充当模块的东西是有道理的,但是如果你依赖于改变的东西,你真的想确保它不会破坏别的东西。

使用CI服务器将允许您在每个解决方案上运行所需的任何类型的测试,并通知您其中一个解决方案的失败。您还可以为打包部署等内容添加步骤,或者如果您真的喜欢玩火,可以让CI服务器自动部署。

编辑:通常这都是在集成服务器上完成的,但没有理由不能在本地计算机上进行设置。

答案 1 :(得分:0)

如果您使用任何形式的持续整合,例如巡航控制,团队城市,TFS等,然后您可以轻松设置您的CI以重建您的依赖。

另一个不太优雅的解决方案可能是拥有包含所有项目的.sln文件并在该解决方案中工作。

或者,您可以添加一个post build事件,在您进行更改时构建依赖解决方案。

答案 2 :(得分:0)

Configuration Manager中将这些项目标记为Build / Deploy 你可能错过了。

答案 3 :(得分:0)

实际上,听起来非常可怕。您对单个项目进行了更改,然后,在没有回归测试的情况下,所有依赖项目都会使用新版本自动重新编译并部署

如果你设法找到办法,我预测会出现很大的动荡和灾难。

答案 4 :(得分:0)

重用项目是否为类库?如果是这样,我通常做的是在类库的输出bin中添加对dll的引用。每当我重新编译dll时,其他项目几乎立即检测到它(特别是Intellisense。)

但这对已部署的依赖项目不起作用。

答案 5 :(得分:0)

除了有一个构建服务器设置,这将启动其他项目的构建/发布,我不这么认为。如果你想查看一个连续的构建程序,我们已经使用了“CruiseControl”(http://cruisecontrol.sourceforge.net/),我用它来工作,这是一个很好的设置,有很多自定义的可能性。 / p>

相关问题