Asp.net web api 构建新Azure Fabric服务时未找到清单文件

Asp.net web api 构建新Azure Fabric服务时未找到清单文件,asp.net-web-api,msbuild,manifest,azure-service-fabric,Asp.net Web Api,Msbuild,Manifest,Azure Service Fabric,我们有一个使用Visual Studio 2015创建的Microsoft Azure Service Fabric应用程序。该解决方案已经包含了许多项目和服务——一些充当后端代码,另一些充当提供Web方法的Web API服务。我正在尝试添加一个新的Web API服务(名为ReportingSvcWebApi,在名为ReportingService.WebApi的项目中实现)。我在结构的ApplicationManifest.xml文件中添加了对服务的正确引用。我已经验证了如果我在本地构建和调试

我们有一个使用Visual Studio 2015创建的Microsoft Azure Service Fabric应用程序。该解决方案已经包含了许多项目和服务——一些充当后端代码,另一些充当提供Web方法的Web API服务。我正在尝试添加一个新的Web API服务(名为
ReportingSvcWebApi
,在名为
ReportingService.WebApi
的项目中实现)。我在结构的
ApplicationManifest.xml
文件中添加了对服务的正确引用。我已经验证了如果我在本地构建和调试,我可以ping
ReportingSvcWebApi
服务,使用Postman创建一个web请求,该请求调用我创建的控制器中的一个方法,并获得正确的响应。因此,该服务似乎已正确地集成到我们的结构中

但是,当我签入更改并启动内置团队资源管理器时,会出现一个错误:

C:\Program Files(x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(4875):无法复制文件“E:\[PATH-TO-OUR-SOLUTION-ON-the-BULID-SERVER]\Binaries\ReportingService.WebApi\ReportingSvc.WebApi.exe.manifest”,因为找不到该文件。

请注意,
ReportingSvc.WebApi.exe
是我在项目属性中设置的
ReportingService.WebApi
项目的输出程序集的名称。它也是在报告服务的
servicemifest.xml
文件的
CodePackage/EntryPoint/ExeHost/Program
标记中设置的值。此外,在生成日志中,在错误发生之前,我可以看到许多目标在解决方案中的所有项目上运行并成功,包括报表服务(“默认目标”)、
GetNativeManifest
GetCopyToOutputDirectoryItems
)。在执行Reporting service的
发布
目标期间,似乎发生了故障


我见过其他人报告丢失的.exe.manifest文件错误,但从未报告过服务结构服务。此外,我以前还设法将另一个服务(ASP.NET核心MVC服务)添加到我们的服务结构解决方案中,而没有出现此问题。最后,除了我认为与错误无关的ApplicationManifest.xml和servicemifest.xml文件之外,我在我们的任何项目中都找不到任何关于清单的提及。是否需要在某个位置设置一个选项,以便为我的项目生成.exe.manifest文件,或阻止MSBuild查找该文件?

我通过在文本编辑器中打开服务的.csproj文件并在其他
元素旁边添加以下内容,解决了此问题:

<PropertyGroup> 
    <GenerateManifests>true</GenerateManifests> 
</PropertyGroup>

真的
解决方案中的另一个先前存在的项目没有这个元素,仍然构建得很好。我不知道为什么在这种情况下这是必要的