我现在在包括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是什么?有没有办法在此事件上获得更好的错误输出?
答案 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 方法。 不幸的是,这是不允许的。
重载是编码的一个非常重要的方面,尤其是在使用命令模式时..不知道为什么 SF Actors 不支持这一点..
此外,该错误并未指明问题的原因。我必须在我的代码中进行消除过程才能弄清楚