我正在尝试将一个MVC4 Web应用程序部署到Azure。它依赖于一个F#项目(包含MVC应用程序的控制器),它一直无法构建错误:
C:\ DWASFiles \ Sites \ jbf \ VirtualDirectory0 \ site \ repository \ JBF.Web \ JBF.Web.Controllers \ JBF.Web.FSharp.fsproj:错误MSB4057:项目中不存在目标“Build” 。
VS2012中存在强制升级F#项目的项目。我想知道这是否是Azure不支持的依赖关系,而fsproj的import语句中找到了所有4.5引用:
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.5\Microsoft.FSharp.Targets" Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.5\Microsoft.FSharp.Targets')" />
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')" />
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition="(!Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')) And (Exists('$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets'))" />
<Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="(!Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')) And (!Exists('$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets')) And (Exists('$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets'))" />
对于记录,如果我预先构建DLL并部署它(引用DLL而不是项目)它可以正常工作。此外,fsproj对F#3.0没有实际依赖性(它是迁移到VS2012的F#2.0项目)。
答案 0 :(得分:3)
更新:此问题由https://github.com/projectkudu/kudu/issues/137
跟踪我只是责备了这一点。以下是样本仓库:https://github.com/KuduApps/WebAppWithFSharpLibrary。
这绝对是个错误。您能否在https://github.com/projectkudu/kudu上打开一个问题来跟踪此问题?最好跟踪那里的问题,因为StackOverflow问题。谢谢!