首页 文章

Azure功能应用程序不会通过Jenkins构建

提问于
浏览
2

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

此应用程序不会构建在我们的Jenkins实例上 - 使用Visual Studio构建工具或在VM上安装Visual Studio社区(我没有专业版的构建服务器许可证)并在那里使用开发人员命令提示符 . (我已确保安装了.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] ::组合(a,b)) . [c:\ jenkins \ workspace \ Folder.Name \ Job Name \ Project.Name \ Project.Name.csproj]

我已经检查过所提到的SDK与在我的本地机器上运行的版本相同 .

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

1 回答

  • 0

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

    我们的修复是在恢复时(因此在构建时)始终使用项目本地包目录 . 如果内存服务,Jenkins在 \windows\system32 文件夹下使用 .nuget 目录 . 此文件夹由多个构建作业等共享,并且某些内容被错误地引用 .

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

    NuGet -PackagesDirectory mySolutionDir\packages mySolutionDir\mySolution.sln
    

    如果您正在使用 dotnet restore ,我相信 --packages 参数会做同样的事情 .

相关问题