试图在构建服务器上构建我的 Service Fabric 应用程序。当我构建 .sln 文件时,sfproj 的包目标没有运行。正如预期的那样。我似乎无法让 MSBuild 运行这个目标。
首先,针对 .sln 文件构建时唯一可用的目标是标准的构建和发布目标。
其次,针对 .sfproj 本身构建确实可以运行目标。但是,由于 $(BuildPlatform) 的不匹配,.sfproj 引用的项目无法正确构建。.sfproj 有一个 x64 平台。我的大多数其他项目都是 Any CPU。
我想,这与其说是 Service Fabric 问题,不如说是一般的 MSBuild 问题。我正在寻找一种不需要我统一所有项目的平台选项的解决方案。Service Fabric 真的只是 x64,我的其他项目真的是任何 CPU。
[编辑]
我解决了这个问题。我所做的是在 .sfproj 文件中添加一个名为 的新目标,MaybePublish
并将其设置为默认目标之一。MaybePublish
有一个Condition
for '$(Package)' == 'true'
。它已DependsOnTarget
设置为Package
。基本上,如果在构建解决方案时设置了属性,则此目标可以选择打包 Service Fabric 应用程序。
在我看来,这可能就是这些DeployOnBuild
东西在 Web 发布项目中的工作方式。默认情况下,Service Fabric 目标文件应具有此类支持。