Azure 服务结构:打包代码错误:缺少必需的引用
在更新SF之后,我遇到了一个完全阻止使用SF的问题,我将尝试用没有代码的文字来表达这个问题 服务结构应用程序Azure 服务结构:打包代码错误:缺少必需的引用,azure,reference,package,microservices,azure-service-fabric,Azure,Reference,Package,Microservices,Azure Service Fabric,在更新SF之后,我遇到了一个完全阻止使用SF的问题,我将尝试用没有代码的文字来表达这个问题 服务结构应用程序AppName.SF由AppName.SF.statefactor和AppName.SF.StatefulService组成。两者都引用了名为AppName.Core的类库 案例1:StatefulActor未引用StatefulService-包执行正常: AppName.SF\pkg\Debug\AppName.SF.StatefulActor\code具有AppName.Core.d
AppName.SF
由AppName.SF.statefactor
和AppName.SF.StatefulService
组成。两者都引用了名为AppName.Core
的类库
案例1:StatefulActor
未引用StatefulService
-包执行正常:
AppName.SF\pkg\Debug\AppName.SF.StatefulActor\code具有
AppName.Core.dll
AppName.SF\pkg\Debug\AppName.SF.StatefulService\code
hasAppName.Core.dll
每个包代码文件夹都有AppName.Core.dll
。部署成功执行
案例2:StatefulActor
引用StatefulService
-包执行错误:
AppName.SF\pkg\Debug\AppName.SF.StatefulActor\code
hasAppName.Core.dll
AppName.SF\pkg\Debug\AppName.SF.StatefulService\code
具有否(!)AppName.Core.dll
所以,如果我尝试在集群中部署应用程序,就会出现缺少引用的错误。SF更新到1.4.87-preview后出现问题。看起来您发现了一个bug-我们正在调查。在此期间,如果您使用msbuild进行构建,它应该可以工作。看起来您发现了一个bug-我们正在调查。在此期间,如果您使用msbuild进行生成,则应该可以使用它。对于解决方案,请将以下内容添加到应用程序项目(.sfproj)文件中:
这会对AppName.Core项目的位置做出一些假设。如有必要,调整路径
这将手动将AppName.Core.dll复制到包中缺少它的适当位置
编辑:
或者,为了通用的解决方法,而不是上面的代码片段,尝试使用此方法。让我知道它是否有效
<Target Name="EnsureProjectReferencesAreConfigured" BeforeTargets="GetCopyToOutputDirectoryItems">
<MSBuild
Condition=" '@(ServiceProjectReference)' != '' "
Projects="@(ServiceProjectReference)"
Targets="AssignProjectConfiguration"
Properties="Configuration=$(Configuration);Platform=$(Platform)" />
</Target>
有关解决方法,请将以下内容添加到应用程序项目(.sfproj)文件中:
这会对AppName.Core项目的位置做出一些假设。如有必要,调整路径
这将手动将AppName.Core.dll复制到包中缺少它的适当位置
编辑:
或者,为了通用的解决方法,而不是上面的代码片段,尝试使用此方法。让我知道它是否有效
<Target Name="EnsureProjectReferencesAreConfigured" BeforeTargets="GetCopyToOutputDirectoryItems">
<MSBuild
Condition=" '@(ServiceProjectReference)' != '' "
Projects="@(ServiceProjectReference)"
Targets="AssignProjectConfiguration"
Properties="Configuration=$(Configuration);Platform=$(Platform)" />
</Target>
谢谢。在实际解决方案中,引用的DLL太多。什么时候可以预期修复?是否等待下一次主要更新?谢谢。在实际解决方案中,引用的DLL太多。什么时候可以预期修复?是否等待下一次主要更新?能否请您解释如何使用msbuild解决此问题?您可以使用msbuild.exe/t:package myapp.sfproj
进行打包。谢谢,这很有帮助。我已经使用MSBuild打包,然后手动执行部署FabricApplication.ps1
。是否有一种方法可以将调试器附加到SF应用程序,就像我在VS中按开始按钮一样?不完全是这样。F5具有可连接到每个节点上的每个服务的smarts。您可以手动附加调试器,但调试器只会附加到单个节点上的单个服务。请您解释一下如何使用msbuild来解决此问题?您可以使用msbuild.exe/t:package myapp.sfproj
来包。谢谢,这很有帮助。我已经使用MSBuild打包,然后手动执行部署FabricApplication.ps1
。是否有一种方法可以将调试器附加到SF应用程序,就像我在VS中按开始按钮一样?不完全是这样。F5具有可连接到每个节点上的每个服务的smarts。您可以手动附加调试器,但它将仅附加到单个节点上的单个服务。