【问题标题】:.NET Core 1.1 app with PCL, unable to build on Team services带有 PCL 的 .NET Core 1.1 应用程序,无法在团队服务上构建
【发布时间】:2017-11-15 14:49:06
【问题描述】:

我有以下关于解决方案的项目,这在我的本地运行得非常好。

但是,当我在团队服务中检查代码并创建构建时,它会失败。

mainconsole.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>    
    <PackageTargetFallback>portable-net45+win8</PackageTargetFallback>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETCore.Portable.Compatibility" Version="1.0.1" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\business\business.csproj" />
    <ProjectReference Include="..\portableextensibility\portableextensibility.csproj" />
    <ProjectReference Include="..\portablelibrary\portablelibrary.csproj" />
  </ItemGroup>
</Project>    

构建任务:

  1. 命令行 - 工具dotnet,参数 - restore

  2. 命令行-工具dotnet,参数-build

构建失败:

d:\a\3\s\portablelibrary\portablelibrary.csproj(43,3):错误 MSB4019:导入的项目“C:\Program Files\dotnet\sdk\1.0.4\Microsoft\Portable\v4. 5\Microsoft.Portable.CSharp.targets" 未找到。确认声明中的路径正确,并且该文件存在于磁盘上。 d:\a\3\s\portableextensibility\portableextensibility.csproj(42,3):错误MSB4019:导入的项目“C:\Program Files\dotnet\sdk\1.0.4\Microsoft\Portable\v4.5\Microsoft .Portable.CSharp.targets”没有找到。确认声明中的路径正确,并且该文件存在于磁盘上。

C:\Program Files\dotnet\sdk\1.0.4\NuGet.targets(97,5): 错误:无法解析 'd:\a\3\s\portableextensibility\portableextensibility.csproj' for '。 NETCoreApp,版本=v1.1'。 [d:\a\3\s\dotnetcompatibility.sln] C:\Program Files\dotnet\sdk\1.0.4\NuGet.targets(97,5): 错误:无法解析 'd:\a\3\ s\portablelibrary\portablelibrary.csproj' 用于 '.NETCoreApp,Version=v1.1'。 [d:\a\3\s\dotnetcompatibility.sln] 生成 MSBuild 文件 d:\a\3\s\mainconsole\obj\mainconsole.csproj.nuget.g.props。生成 MSBuild 文件 d:\a\3\s\mainconsole\obj\mainconsole.csproj.nuget.g.targets。将锁定文件写入磁盘。路径:d:\a\3\s\mainconsole\obj\project.assets.json d:\a\3\s\mainconsole\mainconsole.csproj 在 37.7 秒内恢复失败。 d:\a\3\s\business\business.csproj 中的错误 无法为“.NETStandard,Version=v1.1”解析“d:\a\3\s\portablelibrary\portablelibrary.csproj”。 d:\a\3\s\mainconsole\mainconsole.csproj 中的错误 无法为“.NETCoreApp,Version=v1.1”解析“d:\a\3\s\portableextensibility\portableextensibility.csproj”。 无法为 '.NETCoreApp,Version=v1.1' 解析 'd:\a\3\s\portablelibrary\portablelibrary.csproj'。

【问题讨论】:

  • dotnet build 在您的本地计算机上工作吗?我相信不会。
  • 它有效。和我想的一样?我将便携式从 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Portable 复制到 C:\Program Files\dotnet\sdk\1.0.4\Microsoft\Portable
  • 所以在这种情况下,msbuild(命令行)和dotnet build都可以工作。
  • 您还必须为构建服务器编写该副本的脚本。msbuild 应该在构建服务器上自动运行而无需复制
  • @MartinUllrich,是的,我同意了。但是 MSBuild 也失败了。

标签: c# visual-studio asp.net-core msbuild


【解决方案1】:

由于解决方案包含当前无法使用dotnet cli 构建的 PCL 库,因此必须通过 msbuild 而不是基于 dotnet 的命令来构建项目。

【讨论】:

  • 以防万一,有没有办法在竹子中配置 Quest 代理 Hosted 2017。因为我也签入团队服务,Hosted 代理失败。
【解决方案2】:

以下是更正后的配置:

构建定义

队列选项

结果

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多