【问题标题】:How to execute portion of a code only locally and not on the server如何仅在本地而不是在服务器上执行部分代码
【发布时间】:2016-12-17 20:40:18
【问题描述】:

我有一个类库,在构建时我正在执行 'public override bool Execute()' 方法。 在方法内部,我有想要在构建时执行的逻辑。 在该方法中,我还想在使用'Process.Start("somefile.bat")' 构建库时启动另一个进程。 我的问题是 - 当我尝试在本地构建它时,如何指定这个过程应该启动,而不是当我在 tfs 服务器上构建它时?

我知道如果是 debug vs release 我可以添加#if debug,有没有类似于本地 vs 服务器构建的东西?

【问题讨论】:

    标签: c# .net tfs build msbuild


    【解决方案1】:

    尝试将/p:DefineConstants="SERVERBUILD" 添加到构建定义的“进程”选项卡中的 MSBuild 参数中。 然后您将能够通过#if SERVERBUILD 检查构建过程是在本地还是在服务器上。

    【讨论】:

    • 我只是建议为DEVBUID 使用一个常量,并将服务器设置为默认值,以确保没有人不小心将测试代码部署到生产环境中。这也可以在匹配属性组的<DefineConstants> 属性中的csproj 文件中设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多