从 project.json 到 function.proj xml 的 Azure 函数转换

Posted

技术标签:

【中文标题】从 project.json 到 function.proj xml 的 Azure 函数转换【英文标题】:Azure function conversion from project.json to function.proj xml 【发布时间】:2020-06-28 07:07:03 【问题描述】:

如何将旧的 project.json 转换为 Azure Function App 的 function.proj xml


  "frameworks": 
    "net46":
      "dependencies": 
        "Newtonsoft.Json": "10.0.3",
        "System.ServiceModel.Primitives":"4.4.0",
        "MongoDB.Bson": "2.4.0",
        "MongoDB.Driver": "2.4.0",
        "MongoDB.Driver.Core": "2.4.0"
      
    
   

【问题讨论】:

【参考方案1】:

你只需要创建如下的xml:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        <AzureFunctionsVersion>v2</AzureFunctionsVersion>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="System.ServiceModel.Primitives" Version="4.4.0" />
        <PackageReference Include="MongoDB.Bson" Version="2.4.0" />
        <PackageReference Include="MongoDB.Driver" Version="2.4.0" />
        .......
    </ItemGroup>
</Project>

将旧文件中的所有包信息(路径和版本)复制到此 xml。可以参考这个tutorial。

【讨论】:

感谢您的信息。我收到错误错误 CS0234:使用 System.ServiceModel.Description 的命名空间“System.ServiceModel”中不存在类型或命名空间名称“描述”(您是否缺少程序集引用?);还有错误 CS0246:找不到类型或命名空间名称“MongoDB”(您是否缺少 using 指令或程序集引用?) @user3744961 我可以知道你的天蓝色函数的版本吗?将 project.json 转换为 function.proj 时,是创建一个新的函数应用还是只使用旧的函数应用? 创建了新的函数应用。版本 - 3;运行时版本:3.0.13139.0 @user3744961 我之前也遇到过同样的问题,刚刚搜索了一些资料。根据这个post,看来我们可以在 azure function v1 中使用“System.ServiceModel.Primitives”。 @user3744961 您可以尝试将包的dll复制到azure函数bin文件夹并使用#r将其导入您的函数中(但我之前尝试过这种方式但失败了)。

以上是关于从 project.json 到 function.proj xml 的 Azure 函数转换的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core 工具从 project.json 移动到基于 MSBuild 的项目后的使用

[asp.net core]project.json

.NET Core项目从xproj+project.json向csproj迁移简介

[.NET Core 24]把project.json迁移到.csproj

project.json 和 csproj 属性之间的映射

project.json 指定 NuGet 依赖项的确切版本