FabActUtil.exe以代码-1退出

时间:2016-10-19 15:00:43

标签: azure-service-fabric

我现在在包括Service Fabric软件包在内的所有版本上都出现以下错误:

build\Microsoft.ServiceFabric.Actors.targets(34,5): 
error MSB3073: The command ""\Build\x64\Debug\\FabActUtil.exe"
/app:"\ApplicationPackageRoot" /spp:"PackageRoot" /t:manifest /ap:"Project"
/sp:"Project1" /in:"..\Build\x64\Debug\\Project1.Exe"
/local5nodeappparamfile:"ApplicationParameters\Local.5Node.xml" 
/local1nodeappparamfile:"ApplicationParameters\Local.1Node.xml" " 
exited with code -1.

在Service Fabric 5.2.207,SDK 2.2.207上运行

FabActUtil.exe的代码-1是什么?有没有办法在此事件上获得更好的错误输出?

4 个答案:

答案 0 :(得分:3)

从Visual Studio外部的错误消息运行命令,给出了以下带有堆栈跟踪的消息:

System.ArgumentException: An item with the same key has already been     
added. 
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource 
resource) 
  at System.Collections.Generic.Dictionary`2.Insert(TKey key, 
TValue value, Boolean add) 
  at Microsoft.ServiceFabric.Actors.Generator.ManifestGenerator.Context.LoadExistingContents() 
  at Microsoft.ServiceFabric.Actors.Generator.ManifestGenerator.Generate(Arguments arguments) 
  at FabActUtil.Tool.GenerateOutput(ToolContext context) 
  at FabActUtil.Program.Main(String[] args)

这是由于ApplicationManifest.xml对其中一个默认服务进行了重复定义。

感谢amanbha:https://github.com/amanbha

答案 1 :(得分:0)

如果您使用Service Fabric SDK遇到FabActUtil.exe错误。 如果MS Build打算使用带有目标文件的FabActUtil.exe构建服务结构actor,则发生错误,即FabActUtil.exe以代码-1退出。可以通过更改目标文件来修复错误。最简单的方法是使用旧Service Fabric SDK的目标文件。

如果您的解决方案到目前为止运行正常,我认为您的解决方案根目录的packages文件夹中有一些Microsoft.ServiceFabric.Actors包。

如果您没有正常运行的程序包,请使用this target file of Microsoft.ServiceFabric.Actors.2.2.207。此文件包含differences,文件在复制和运行的位置发生错误,然后删除FubActUtil.exe。

目标文件是:

%solution root%\packages\Microsoft.ServiceFabric.Actors.%version%\build\Microsoft.ServiceFabric.Actors.targets

并且与版本无关。

答案 2 :(得分:0)

好吧,我从无法编译的项目中删除了bin文件夹,并且可以正常工作。

答案 3 :(得分:0)

有同样的错误。就我而言,这是因为我重载了 Actor 方法。 不幸的是,这是不允许的。

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-create-your-first-linux-application-with-java

重载是编码的一个非常重要的方面,尤其是在使用命令模式时..不知道为什么 SF Actors 不支持这一点..

此外,该错误并未指明问题的原因。我必须在我的代码中进行消除过程才能弄清楚