代码之家  ›  专栏  ›  技术社区  ›  Dan O'Leary

编译F#。Azure功能的NET Core项目

  •  1
  • Dan O'Leary  · 技术社区  · 8 年前

    我可以通过连续交付(通过Github)成功地将C#项目部署到Azure Function应用程序,并且这是自动编译并成功部署的。以下是csproj:

    <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
      <TargetFramework>netstandard2.0</TargetFramework>
      <AzureFunctionsVersion>v2</AzureFunctionsVersion>
    </PropertyGroup>
    <ItemGroup>
     <PackageReference Include="Microsoft.NET.Sdk.Functions" 
         Version="1.0.6" />
    </ItemGroup>
    <ItemGroup>
     <None Update="host.json">
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
    </ItemGroup>
    </Project>
    

    但是,如果在解决方案中包含一个F#项目,则会得到以下错误消息:

    节点1上的项目“D:\home\site\repository\MyFunc\MyFunc.fsproj”(默认目标)。 D: \程序文件(x86)\MSBuild-15.3.409.57025\MSBuild\Microsoft\VisualStudio\v15.0\FSharp\Microsoft。F竖琴。NetSdk。props(3,3):错误MSB4019:找不到导入的项目“D:\Program Files(x86)\Microsoft SDK\F#\4.1\Framework\v4.0\Microsoft.FSharp.NetSdk.props”。确认声明中的路径正确,并且文件存在于磁盘上。[D:\home\site\repository\MyFunc\MyFunc.fsproj] 已完成生成项目“D:\home\site\repository\MyFunc\MyFunc.fsproj”(默认目标)的操作--失败。

    这是fsproj:

    <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
      <TargetFramework>netstandard2.0</TargetFramework>
     </PropertyGroup>
     <ItemGroup>
      <Compile Include="File.fs" />
     </ItemGroup>
     <ItemGroup>
      <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
     </ItemGroup>
    </Project>
    

    有没有办法让Azure编译F#项目?

    1 回复  |  直到 8 年前
        1
  •  0
  •   kagetoki    8 年前

    不幸的是,到目前为止,您还不能,因为所需的文件 Microsoft.FSharp.NetSdk.props 缺少。部署脚本也不会剪切它,因为文件夹不可访问。然而,仍然可以在另一个环境中构建项目,然后进行部署。

    您可以在中找到更多详细信息 this article .