【问题标题】:.NET Building Process - Github/Git and Dependent Projects.NET 构建过程 - Github/Git 和依赖项目
【发布时间】:2012-10-19 05:39:49
【问题描述】:

我目前正在将 Github/Git 用于两个 .NET 解决方案。第一个解决方案是我公司所有项目的通用 .NET 代码库,第二个解决方案是 ASP.NET MVC Web 应用程序。

对于克隆第一个 repo、构建它、克隆第二个 repo、将程序集从第一个解决方案添加到第二个解决方案,正确的 Nant 或 MSBuild 文件是什么样的?我计划使用 Jenkins 作为我的构建服务器。我不清楚哪些部分由构建服务器处理,哪些由构建文件处理。我不想重新发明轮子。谢谢。

【问题讨论】:

    标签: .net git msbuild build-process nant


    【解决方案1】:

    您可以为公司库设置构建过程,将编译后的二进制文件放入共享位置。例如,共享网络驱动器,或(最好)私有 NuGet 存储库(如果您使用的是 Visual Studio)。

    然后在其他项目中添加对程序集/NuGet 包的引用。就个人而言,我是 NuGet 路线的忠实粉丝。

    使用 NuGet 的好处是您不必必须在新版本发布后立即使用它(尽管它很容易升级)。

    【讨论】:

    • 您的意思是将二进制文件的升级留给开发人员?是否有一种简单的方法可以在 GUI NuGet 包管理器中选择“升级”?猜猜我总是注意到某些东西是否已安装。
    • 是的,因此,例如,如果我们将更新 1.1 发布到公共库,并且我们正在向客户端项目发布关键修复,那么最好将公共库引用保留为 1.0 以减少测试时间.升级包是通过 Visual Studio 中的 NuGet 命令行完成的。
    • 你似乎也可以使用包GUI
    【解决方案2】:

    使用子模块将两者联系起来。您将能够递归克隆并拥有构建工作所需的一切。

    【讨论】:

    • +1 - 不知道这是一个功能。但我知道这会让与我一起工作的开发人员感到困惑。这确实提供了很大的力量。对于我目前正在做的工作,我总是想要最新最好的“框架”版本。如果您想在主项目中的某些提交处冻结框架,这似乎会更有用。明天带它去试驾,看看效果如何。
    • 您还可以研究git slave,它可以跨子模块自动执行命令。这是一个我还没有尝试过的单独项目。
    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 2013-01-30
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多