Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 服务结构:打包代码错误:缺少必需的引用_Azure_Reference_Package_Microservices_Azure Service Fabric - Fatal编程技术网

Azure 服务结构:打包代码错误:缺少必需的引用

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

在更新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.dll

AppName.SF\pkg\Debug\AppName.SF.StatefulService\code
has
AppName.Core.dll

每个包代码文件夹都有AppName.Core.dll。部署成功执行

案例2:
StatefulActor
引用
StatefulService
-包执行错误:

AppName.SF\pkg\Debug\AppName.SF.StatefulActor\code
has
AppName.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。您可以手动附加调试器,但它将仅附加到单个节点上的单个服务。