无法在 Linux 环境中打包 Service Fabric 应用程序

Can't package Service Fabric application in Linux environment

我需要打包我的 Service Fabric 应用程序以便将其部署到 Azure Service Fabric 集群。

我在Windows:

中使用这个命令没有任何错误

dotnet msbuild SfTestApp/SfTestApp.sfproj /t:Package

但是当我将我的源代码推送到 Bitbucket 并尝试在管道中打包我的应用程序时 - 我总是收到相同的错误消息:

/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018: The "GetPackageRootFiles" task failed unexpectedly. [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path '/opt/atlassian/pipelines/agent/build/SfTestApp/ApplicationPackageRoot\'. [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at System.IO.UnixFileSystem.FileSystemEnumerable`1.Enumerate() [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at System.IO.UnixFileSystem.FileSystemEnumerable`1..ctor(String userPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget, Func`3 translateResult) [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at System.IO.UnixFileSystem.EnumeratePaths(String path, String searchPattern, SearchOption searchOption, SearchTarget searchTarget) [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption) [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption) [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at Microsoft.VisualStudio.Azure.Fabric.BuildTasks.GetPackageRootFiles.FindPackageRootFilesInFileSystem(String fullPackageRootPath) [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at Microsoft.VisualStudio.Azure.Fabric.BuildTasks.GetPackageRootFiles.Execute() [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() in E:\A\_work\s\src\Build\BackEnd\TaskExecutionHost\TaskExecutionHost.cs:line 631 [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]
/opt/atlassian/pipelines/agent/build/packages/Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.4/build/Microsoft.VisualStudio.Azure.Fabric.Application.targets(396,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__25.MoveNext() in E:\A\_work\s\src\Build\BackEnd\Components\RequestBuilder\TaskBuilder.cs:line 787 [/opt/atlassian/pipelines/agent/build/SfTestApp/SfTestApp.sfproj]

我已经尝试创建空的 Service Fabric 应用程序(内部没有任何服务),但错误仍然存​​在。

GetPackageRootFiles 有什么问题(正如我从错误消息中看到的那样)?

它看起来像是 MSBuild 中的错误...

Looks like a bug in our MSBuild task that we will fix where it had some platform specific code. FWIW, we haven't tested the VS tooling / MSBuild tasks on Linux yet so you are working in a bit of uncharted territory.

https://github.com/Azure/service-fabric-issues/issues/844

此错误已在 MsBuild 1.6.5 中修复