Visual studio 部署服务结构应用程序失败-找不到入口点Xyz.exe

Visual studio 部署服务结构应用程序失败-找不到入口点Xyz.exe,visual-studio,azure-service-fabric,Visual Studio,Azure Service Fabric,使用Visual Studio Team Services使用生成和发布定义实现CI/CD管道。我们的一个项目正确构建,但在部署到远程服务结构群集时失败,错误如下: 2017-01-24T21:57:57.7395575Z ##[error]The EntryPoint mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe is not found. 2017-01-24T21:57:57.7395575Z ##[er

使用Visual Studio Team Services使用生成和发布定义实现CI/CD管道。我们的一个项目正确构建,但在部署到远程服务结构群集时失败,错误如下:

2017-01-24T21:57:57.7395575Z ##[error]The EntryPoint mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe is not found.
2017-01-24T21:57:57.7395575Z ##[error]FileName: C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\TestApplicationPackage_356048141954\10xqzk0s.1m1\applicationpackage\mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg\ServiceManifest.xml
查看应用程序包,我们看到正确生成了mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe,并且没有丢失

可以使用Visual Studio Enterprise生成的
Deploy FabricApplication.ps1
脚本将相同的应用程序包(从VSTS中的Artifacts选项卡下载)部署到本地集群或我们的开发集群上

查看任务源代码,我们发现在调用
测试服务FabricapplicationPackage
后,任务在第146行失败。但是,在下载的应用程序包上手动运行此命令似乎返回true

似乎没有任何方法可以使日志更加冗长。我们还有其他CI/CD管道正常工作的项目

编辑

构建日志超过2MB,我不能在这里发布

发布日志:

ApplicationManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="mycompany.VariableLibrary.App" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Parameters>
    <Parameter Name="QuestionnaireDefinitionEventAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="FillOutEventAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="RestAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="VariableLibraryService_MinReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VariableLibraryService_PartitionCount" DefaultValue="1" />
    <Parameter Name="VariableLibraryService_TargetReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VariableLibraryServiceUri" DefaultValue="" />
    <Parameter Name="EnvironmentName" DefaultValue="" />
    <Parameter Name="InstrumentationKey" DefaultValue="" />
    <Parameter Name="DiagEnableErrorPage" DefaultValue="" />
    <Parameter Name="JwtDomain" DefaultValue="" />
    <Parameter Name="JwtAudience" DefaultValue="" />
    <Parameter Name="JwtClientSecret" DefaultValue="" />
    <Parameter Name="DomainEventBusServiceBusTopicPath" DefaultValue="DomainEvents" />
    <Parameter Name="DomainEventBusServiceBusConnectionString" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionSampleServiceUri" DefaultValue="" />
    <Parameter Name="FillOutServiceUri" DefaultValue="" />
  </Parameters>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.FillOutEventAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.RestAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DiagEnableErrorPage" Value="[DiagEnableErrorPage]" />
            <Parameter Name="JwtDomain" Value="[JwtDomain]" />
            <Parameter Name="JwtAudience" Value="[JwtAudience]" />
            <Parameter Name="JwtClientSecret" Value="[JwtClientSecret]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.VariableLibraryServicePkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" Value="[QuestionnaireDefinitionSurveyServiceUri]" />
            <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" Value="[QuestionnaireDefinitionQuestionnaireServiceUri]" />
            <Parameter Name="QuestionnaireDefinitionSampleServiceUri" Value="[QuestionnaireDefinitionSampleServiceUri]" />
            <Parameter Name="FillOutServiceUri" Value="[FillOutServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <DefaultServices>
    <Service Name="QuestionnaireDefinitionEventAdapter">
      <StatelessService ServiceTypeName="QuestionnaireDefinitionEventAdapter" InstanceCount="[QuestionnaireDefinitionEventAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="FillOutEventAdapter">
      <StatelessService ServiceTypeName="FillOutEventAdapter" InstanceCount="[FillOutEventAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="RestAdapter">
      <StatelessService ServiceTypeName="RestAdapter" InstanceCount="[RestAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="VariableLibraryService">
      <StatefulService ServiceTypeName="VariableLibraryService" TargetReplicaSetSize="[VariableLibraryService_TargetReplicaSetSize]" MinReplicaSetSize="[VariableLibraryService_MinReplicaSetSize]">
        <UniformInt64Partition PartitionCount="[VariableLibraryService_PartitionCount]" LowKey="-9223372036854775808" HighKey="9223372036854775807" />
      </StatefulService>
    </Service>
  </DefaultServices>
</ApplicationManifest>
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="QuestionnaireDefinitionEventAdapter" />
  </ServiceTypes>

  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe</Program>
      </ExeHost>
    </EntryPoint>
  </CodePackage>

  <ConfigPackage Name="Config" Version="1.0.0" />

  <Resources>
    <Endpoints>
      <Endpoint Name="ServiceEndpoint" />
    </Endpoints>
  </Resources>
</ServiceManifest>

ServiceManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="mycompany.VariableLibrary.App" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Parameters>
    <Parameter Name="QuestionnaireDefinitionEventAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="FillOutEventAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="RestAdapter_InstanceCount" DefaultValue="-1" />
    <Parameter Name="VariableLibraryService_MinReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VariableLibraryService_PartitionCount" DefaultValue="1" />
    <Parameter Name="VariableLibraryService_TargetReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VariableLibraryServiceUri" DefaultValue="" />
    <Parameter Name="EnvironmentName" DefaultValue="" />
    <Parameter Name="InstrumentationKey" DefaultValue="" />
    <Parameter Name="DiagEnableErrorPage" DefaultValue="" />
    <Parameter Name="JwtDomain" DefaultValue="" />
    <Parameter Name="JwtAudience" DefaultValue="" />
    <Parameter Name="JwtClientSecret" DefaultValue="" />
    <Parameter Name="DomainEventBusServiceBusTopicPath" DefaultValue="DomainEvents" />
    <Parameter Name="DomainEventBusServiceBusConnectionString" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" DefaultValue="" />
    <Parameter Name="QuestionnaireDefinitionSampleServiceUri" DefaultValue="" />
    <Parameter Name="FillOutServiceUri" DefaultValue="" />
  </Parameters>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.FillOutEventAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.RestAdapterPkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DiagEnableErrorPage" Value="[DiagEnableErrorPage]" />
            <Parameter Name="JwtDomain" Value="[JwtDomain]" />
            <Parameter Name="JwtAudience" Value="[JwtAudience]" />
            <Parameter Name="JwtClientSecret" Value="[JwtClientSecret]" />
            <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.VariableLibraryServicePkg" ServiceManifestVersion="1.0.0" />
    <ConfigOverrides>
      <ConfigOverride Name="Config">
        <Settings>
          <Section Name="AppSettings">
            <Parameter Name="EnvironmentName" Value="[EnvironmentName]" />
            <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" />
            <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" />
            <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" />
            <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" Value="[QuestionnaireDefinitionSurveyServiceUri]" />
            <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" Value="[QuestionnaireDefinitionQuestionnaireServiceUri]" />
            <Parameter Name="QuestionnaireDefinitionSampleServiceUri" Value="[QuestionnaireDefinitionSampleServiceUri]" />
            <Parameter Name="FillOutServiceUri" Value="[FillOutServiceUri]" />
          </Section>
        </Settings>
      </ConfigOverride>
    </ConfigOverrides>
  </ServiceManifestImport>
  <DefaultServices>
    <Service Name="QuestionnaireDefinitionEventAdapter">
      <StatelessService ServiceTypeName="QuestionnaireDefinitionEventAdapter" InstanceCount="[QuestionnaireDefinitionEventAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="FillOutEventAdapter">
      <StatelessService ServiceTypeName="FillOutEventAdapter" InstanceCount="[FillOutEventAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="RestAdapter">
      <StatelessService ServiceTypeName="RestAdapter" InstanceCount="[RestAdapter_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
    <Service Name="VariableLibraryService">
      <StatefulService ServiceTypeName="VariableLibraryService" TargetReplicaSetSize="[VariableLibraryService_TargetReplicaSetSize]" MinReplicaSetSize="[VariableLibraryService_MinReplicaSetSize]">
        <UniformInt64Partition PartitionCount="[VariableLibraryService_PartitionCount]" LowKey="-9223372036854775808" HighKey="9223372036854775807" />
      </StatefulService>
    </Service>
  </DefaultServices>
</ApplicationManifest>
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="QuestionnaireDefinitionEventAdapter" />
  </ServiceTypes>

  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe</Program>
      </ExeHost>
    </EntryPoint>
  </CodePackage>

  <ConfigPackage Name="Config" Version="1.0.0" />

  <Resources>
    <Endpoints>
      <Endpoint Name="ServiceEndpoint" />
    </Endpoints>
  </Resources>
</ServiceManifest>

mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe

有什么想法吗?

既然你说这在本地有效,但在真正的azure集群中却不起作用,我想知道你是否在某个地方遇到了路径过长的错误,导致文件无法正确复制到映像存储,或者导致了其他问题。部署中的各种名称也可能导致长路径(>260个字符),不幸的是在Windows中失败。若要尝试查看这是否是原因,请尝试将可执行文件重命名为类似于.exe的名称,然后再次尝试部署。您可能还需要缩短应用程序和服务类型名称


该错误通常意味着您的一个服务包引用了一个可执行文件(在本例中,它看起来像
QuestionnaireDefinitionEventAdapter.exe
),但是您正在生成并试图向集群注册的实际包缺少该可执行文件。您还可以检查生成为构建一部分的实际包,并确保它存在于集群中。如果您想探索图像存储中实际被推入的内容,只是为了进行检查,您可以使用
Get-servicefactricimagestorecontent

因为您是说这在本地工作,但在真正的azure集群中不起作用,所以我想知道您是否在某个地方遇到了路径过长错误,导致文件无法正确复制到映像存储,或者导致了其他问题。部署中的各种名称也可能导致长路径(>260个字符),不幸的是在Windows中失败。若要尝试查看这是否是原因,请尝试将可执行文件重命名为类似于.exe的名称,然后再次尝试部署。您可能还需要缩短应用程序和服务类型名称


该错误通常意味着您的一个服务包引用了一个可执行文件(在本例中,它看起来像
QuestionnaireDefinitionEventAdapter.exe
),但是您正在生成并试图向集群注册的实际包缺少该可执行文件。您还可以检查生成为构建一部分的实际包,并确保它存在于集群中。如果您想探索图像存储中实际被推入的内容,只是为了进行检查,您可以使用
Get-servicefactricimagestorecontent

我认为如果您共享build\deployment日志以及ServiceManifext.xml和ApplicationManifest.xml,可以帮助其他人回答您的问题。我认为如果您共享build\deployment日志以及ServiceManifext.xml和ApplicationManifest.xml,可以帮助其他人回答您的问题。这是正确的,缩短打包的可执行文件的名称解决了这个问题。谢谢这是正确的,缩短打包的可执行文件的名称解决了问题。谢谢