【问题标题】:dotnet build does not create `csproj.metaproj` files needed for Travis CIdotnet build 不会创建 Travis CI 所需的“csproj.metaproj”文件
【发布时间】:2017-09-17 06:30:29
【问题描述】:

我刚刚开始使用 Travis CI 在 git hub 上构建一个项目,但根据 Travis build output log Travis 似乎正在寻找尚未创建的 csproj.metaproj。我该怎么做:

  • 获取 dotnet build 以创建 csproj.metaproj 文件

  • 停止 travis 需要 csproj.metaproj 文件

哪个是更好的解决方案?

我的 travis yml 文件如下所示:

language: csharp
dist: trusty
mono: none
sudo: required
dotnet: 2.0.0
script:
  - ./build.sh --quiet verify
before_install:
  - chmod +x build.sh

我的 build.sh 文件如下所示:

#!/usr/bin/env bash
dotnet restore && dotnet build
dotnet test Code\Shared\ORMS.Shared.SharedKernel\ORMS.Shared.SharedKernel.csproj

编辑:

根据 Tomasz Żmuda here 的回答,我的 build.sh 文件现在看起来像:

#!/usr/bin/env bash
dotnet restore
dotnet clean -c Release
dotnet build OpenRMS.sln -c Release

而我的.travis.yml 看起来像:

language: csharp
dist: trusty
sudo: required
mono: none
dotnet: 2.0.0
solution: OpenRMS.sln
branches:
  only:
    - master-net-core
before_script:
  - chmod +x build.sh
  - chmod +x test.sh
script:
  - ./build.sh

this build 开始,这些更改有效。

【问题讨论】:

    标签: msbuild .net-core travis-ci csproj


    【解决方案1】:

    即使在普通机器上,您的脚本也无法运行 :) 让它工作的最简单的方法就是改变

    dotnet build
    

    dotnet build Code/Shared/ORMS.Shared.SharedKernel/
    

    所以你的脚本应该是这样的:

    #!/usr/bin/env bash
    dotnet restore
    dotnet build Code/Shared/ORMS.Shared.SharedKernel/
    dotnet test Code/Shared/ORMS.Shared.SharedKernel.UnitTests/
    

    我建议在 dotnet build 像 release build 和 assembly 版本中添加一些标志。检查这个文件: build.sh

    【讨论】:

    • 那么我的解决方案中的每个项目都需要dotnet build Code/Shared/ORMS.Shared.SharedKernel/ 行吗?我不能只告诉它构建解决方案和其中的所有项目吗?
    • 使用基于您的答案的信息,它现在可以构建,所以谢谢。我将更新我的问题以包含我的解决方案。
    • 很高兴我的回答对您有所帮助 :) 您也应该在“dotnet build OpenRMS.sln”命令中添加“-c Release”。
    • 奥基多克。我肯定会回到机器上。谢谢
    • 你不应该改变问题来提供解决方案,回答你自己的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多