【问题标题】:Azure function app will not build via JenkinsAzure 函数应用程序不会通过 Jenkins 构建
【发布时间】:2018-08-01 06:10:06
【问题描述】:

我有一个用 C# 编写的 Azure Function 应用程序。我可以使用 Visual Studio 2017(专业版,15.5.3 版)在本地运行和调试它。我还可以在 vs 2017 的开发人员命令提示符下使用 msbuild 在本地构建它。

此应用不会在我们的 Jenkins 实例上构建 - 使用 Visual Studio 构建工具或通过在 VM 上安装 Visual Studio Community(我没有构建服务器的专业许可证)并在那里使用开发人员命令提示符. (我已确保已安装 .NET Core 构建工具,请参阅 Visual Studio 2017 MSBuild failed to build Azure Functions

我收到以下错误:

C:\Program Files\dotnet\sdk\2.1.4\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets(557,9):
错误 MSB4186:静态方法调用语法无效:“[System.IO.Directory]::GetParent().get_Name()”。
找不到方法“System.IO.Directory.GetParent”。静态方法调用应采用以下形式:$([FullTypeName]::Method()),例如$([System.IO.Path]::Combine(a, b))。
[c:\jenkins\workspace\Folder.Name\Job Name\Project.Name\Project.Name.csproj]

我已检查上述 SDK 是否与在我的本地计算机上运行的版本相同。

我需要做什么才能让这个 VM 能够构建一个 azure 函数应用程序?

【问题讨论】:

  • 您是否可以共享触发 System.IO.Directory::GetParent() 代码路径的代码?这与函数无关,因此可能是某种配置问题。
  • 另外,您可能需要检查是否在 Azure Functions SDK NuGet 包上使用 v1.0.8。我在使用此版本的构建服务器上遇到了构建问题,并将其升级到昨天发布的 v1.0.9,解决了我的问题。注意:我没有遇到与您相同的错误,但值得一试
  • @ChrisAnderson-MSFT FWIW .... 我遇到了同样的错误,对于我们正尝试使用 TeamCity 构建的一组非常基本的 azure 功能。 ...另外,将 Functions SDK 更新到 1.0.9 对我没有任何影响。

标签: visual-studio jenkins visual-studio-2017 .net-core azure-functions


【解决方案1】:

我们遇到了同样的问题:“手动”构建 — 即使在构建服务器上运行,尽管使用不同的登录名 — 也会成功。通过 Jenkins 运行时,相同的构建脚本失败。

我们的解决方法是在恢复时(因此在构建时)始终使用项目本地包目录。如果没有记错的话,Jenkins 正在使用 \windows\system32 文件夹下的 .nuget 目录。此文件夹由多个构建作业等共享,并且 something 被错误地引用。

-PackagesDirectory 参数添加到NuGet restore 解决了这个问题,例如

NuGet -PackagesDirectory mySolutionDir\packages mySolutionDir\mySolution.sln

如果你使用dotnet restore,我相信--packages 参数会做同样的事情。

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2023-03-19
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多