was*_*abi 9 msbuild azure-service-fabric
尝试在构建服务器上构建我的Service Fabric应用程序.当我构建.sln文件时,sfproj的Package目标不会运行.正如所料.我似乎无法让MSBuild运行此目标.
首先,构建针对.sln文件时唯一可用的目标是标准的Build和Publish目标.
其次,构建针对.sfproj本身的目标是让目标运行.但是,由于$(BuildPlatform)不匹配,.sfproj引用的项目无法正确构建..sfproj有一个x64平台.我的大多数其他项目都是任何CPU.
我想,这不是一个Service Fabric问题,而是更多的一般MSBuild问题.我正在寻找一种解决方案,不需要我统一我项目的所有平台选项.服务结构真的只是x64,我的其他项目真的是任何CPU.
[编辑]
我解决了这个问题 我所做的是在.sfproj文件中添加一个新的Target MaybePublish
,并将其设置为默认目标之一.MaybePublish
有一个Condition
对'$(Package)' == 'true'
.它已经DependsOnTarget
设定为Package
.基本上,如果在构建解决方案时设置了属性,则此目标可选择打包Service Fabric应用程序.
在我看来,这可能DeployOnBuild
是Web发布项目中的工作原理.默认情况下,Service Fabric目标文件应具有此类支持.
为了帮助澄清芥末的答案.以下是我为实现这一目标所做的工作.
我增加了以下Target
我的*.sfproj
文件
<Target Name="CreatePackage" Condition="'$(CreatePackage)' == 'true'" DependsOnTargets="Package" />
Run Code Online (Sandbox Code Playgroud)
我还修改了Project
元素DefaultTargets
属性值Build;CreatePackage
.
要在我的自动构建中创建包,我将其/p:CreatePackage="true"
作为参数添加到构建解决方案步骤中.
我解决了这个问题。我所做的是将一个新目标添加到 .sfproj 文件中,名为 MaybePublish,并将其设置为默认目标之一。MaybePublish 有一个条件 '$(Package)' == 'true'。它将 DependsOnTarget 设置为 Package。基本上,如果在构建解决方案时设置了属性,则此目标可以选择打包 Service Fabric 应用程序。
我觉得这可能就是 DeployOnBuild 东西在 Web 发布项目中的工作原理。默认情况下,Service Fabric 目标文件应具有此类支持。
归档时间: |
|
查看次数: |
5816 次 |
最近记录: |