Azure Function 1.x和VS17的Nuget问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Function 1.x和VS17的Nuget问题相关的知识,希望对你有一定的参考价值。

我的项目遇到一些问题,我不知道它到底出了什么问题,但是现在我的Azure Function 1.x项目无法构建。再次构建它至关重要:-/。

这是一个带有Microsoft.NET.Sdk.Functions 1.0.35(在2.x之前的最新版本)的.NET Framework 4.6.2项目。

我有一些用法似乎无法找到,并且函数本身有此错误:

Error   CS0246  The type or namespace name 'FunctionNameAttribute' could not be found (are you missing a using directive or an assembly reference?)

因此,我的[FunctionName]带有红色的波浪线,我不明白为什么,应该在Microsoft.NET.Sdk.Functions中?我试图清理并重建项目。

我已尝试通过命令Update-Package -reinstall -Project MyVeryCriticalProject重新安装我的软件包

PM> Update-Package -reinstall -Project MyVeryCriticalProject
No package updates are available from the current package source for project 'MyVeryCriticalProject'.
Executing nuget actions took 0 ms
Time Elapsed: 00:00:10.4211309

它还抱怨缺少名称空间:

enter image description here

但是我的csproj文件已包含这些文件,因为我已将它们安装在nuget中:

  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs" Version="2.3.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Core" Version="2.3.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="2.2.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.ServiceBus" Version="2.2.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.35" />

我已经安装了VS2019,并且打算将该项目移至Azure Functions 3.x和.NET Core,但是现在我需要使用它来编译:-/有什么线索吗?

编辑:使用VS17,我只是一个新的Function 1.x项目,从一开始就缺少它的东西:

enter image description here

我已经安装了.NET Framework 4.6.2,然后重新安装了它。

答案

仅安装Microsoft.NET.Sdk.Functions程序包就足够了。从您的错误消息中,问题出在Microsoft.NET.Sdk.Functions程序包。软件包的构建似乎已失败。请确保您使用的是最新版本的nuget软件包管理工具。

另一答案

[Azure Function 1.x和VS17的Nuget问题

我认为您的VS2017环境中有些问题。

而且在我这边,当我用Azure Function v1创建Azure Function项目时,它运行良好,没有任何构建错误。所以我建议您可以尝试以下建议:

NoteUpdate-Package -reinstall -Project MyVeryCriticalProject不支持PackageReference nuget格式。

[1)确保VS2017已使用这些选项工具(在右侧)安装了Azure开发工作负载。

enter image description here

[2)更改您的itemgroup xml节点,并保留唯一的nuget包Microsoft.NET.Sdk.Functions,并删除其他与Microsoft.NET.Sdk.Functions相关的包。像这样:

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.35" />
</ItemGroup>

然后尝试在Nuget软件包管理UI下卸载Microsoft.NET.Sdk.Functions nuget软件包,然后重新安装。

[3)然后通过右键单击您的解决方案来单击Restore Nuget Packages

4)禁用Tools-> Updates and Extensions下的任何第三方扩展,以防某些扩展引起此行为。在您的代码编辑器中,我发现您使用了一些扩展程序,例如Resharper。

5]关闭VS实例,删除.vs隐藏文件夹(与xxx.sln位于同一目录中的隐藏文件夹),binobj文件夹,然后再次重新启动项目。

6) repair VS in VS Installer

此外,您可以尝试在VS2017中创建新的Azure函数以测试这是否是您当前项目的问题。

以上是关于Azure Function 1.x和VS17的Nuget问题的主要内容,如果未能解决你的问题,请参考以下文章

Azure Function App VS 2019 .NET 3.0 中的错误 - 找不到方法:'IFunctionsHostBuilder.get_Services()'

C# Azure Function - CosmosDB 触发和解析文档数据

弹性池中的 Azure 已用 Vs 已分配 Vs 最大值

尝试通过 Azure Function App 站点 URL 发布 ZIP 文件失败,HTTP 状态代码未经授权

未调用 Azure Function 启动的配置

适用于 Cordova 的 Azure 移动服务/VS 工具 - 404