Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Msbuild 构建脚本-如何实现_Msbuild_Build_Batch File - Fatal编程技术网

Msbuild 构建脚本-如何实现

Msbuild 构建脚本-如何实现,msbuild,build,batch-file,Msbuild,Build,Batch File,大约两个月前,我超过了目前公司的建筑流程。虽然我对它了解不多,但我是唯一有足够时间的人,所以我没有太多选择 情况不是那么好,我想做以下几点: 使用版本在SourceSafe中标记文件(示例ProjectName PV 1.2) 从SourceSafe获取文件到特定目录 构建vb6/c++/c#项目(是的,有各种各样的项目) 构建InstallShield设置 目前,这部分是使用批处理脚本完成的(一个用于标记和获取,一个用于构建等等)。所以,当建筑开始时,我几乎有保姆照顾它。 这段代码的好部分可以

大约两个月前,我超过了目前公司的建筑流程。虽然我对它了解不多,但我是唯一有足够时间的人,所以我没有太多选择

情况不是那么好,我想做以下几点:

  • 使用版本在SourceSafe中标记文件(示例ProjectName PV 1.2)
  • 从SourceSafe获取文件到特定目录
  • 构建vb6/c++/c#项目(是的,有各种各样的项目)
  • 构建InstallShield设置
  • 目前,这部分是使用批处理脚本完成的(一个用于标记和获取,一个用于构建等等)。所以,当建筑开始时,我几乎有保姆照顾它。 这段代码的好部分可以重用

    有没有关于如何做得更好的建议?一个大问题是项目之间的大量依赖关系。此外,标签必须增加版本,如有必要,将PV更改为EV

    我希望尽可能减少用户交互。只需点击一个构建脚本(Spolsky是上帝),就可以完成所有工作,无需增加版本,设置从何处获取文件和类似内容

    批处理脚本是最好的方法吗?我应该使用msbuild执行一些功能吗。还有其他选择吗

    具体的代码是不需要的,现在我只需要一种方法来改进它,即使它不会伤害

    Tnx,
    Marko听起来像是您想要一个持续集成解决方案,比如。它有配置选项来做所有你想做的事情,还有一个很好的社区来回答问题


    此外,批处理脚本可能不是一个好的选择。复杂的构建和集成工具将允许您将参数输入到构建中,并为不同的环境(测试、生产等)创建不同的构建。批处理脚本编写将涉及大量的手工编码和粘合。

    因为您已经有了一个构建系统(尽管其中一些目前是“手动的”),无论您做什么,都不要从头开始

    (1) 确保您有一台测试机(或虚拟机)可以在其上工作。因此,您可以进行更改和改进,而不必担心破坏任何东西

    (2) 将所有构建脚本和工具置于版本控制中,而不仅仅是源代码。然后在进行更改时,看看它们是否有效。如果有,则将其保存到版本控制。如果没有,则将其回滚

    (3) 一次选择一个工作区域。不要试图同时做每件事。无论您使用的是什么构建系统,从大量的手工工作到“一次点击”都需要时间