我正在尝试将一个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'))" />
Run Code Online (Sandbox Code Playgroud)
对于记录,如果我预先构建DLL并部署它(引用DLL而不是项目)它工作正常.此外,fsproj对F#3.0没有实际依赖性(它是迁移到VS2012的F#2.0项目).
更新:此问题由https://github.com/projectkudu/kudu/issues/137跟踪
我只是重复了这一点。这是示例存储库: https: //github.com/KuduApps/WebAppWithFSharpLibrary。
这绝对是一个错误。您能否在https://github.com/projectkudu/kudu上打开一个问题来跟踪这个问题?最好将问题作为 StackOverflow 问题进行跟踪。谢谢!