我正在将 VS2017 (C#) 与 Azure Function 结合使用。效果很好。所以现在我正在尝试为常用函数设置一个类库。当我尝试添加引用时(它安装在 vs2017 中,而不是 Nuget 中),我找不到对 Microsoft.NET.Sdk.Functions (1.0.0) 的引用,因此我将其直接从工作 azure csproj 复制到我的一个类库 csproj
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.0" />
现在,当我构建类库时,我收到“错误 MSB4057:项目中不存在目标“RunResolvePublishAssemblies”。”
如何解决这个问题?
最佳答案
据我所知,如果我们想在类库中使用azure函数,我们需要将项目SDK设置为“Microsoft.NET.Sdk”。 RunResolvePublishAssemblies 包含在 Microsoft.NET.Sdk 中。
像这样:
<Project Sdk="Microsoft.NET.Sdk">
并删除类库的默认编译文件。
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
因为“Microsoft.NET.Sdk”默认包含项目目录中的“编译”项。
然后就可以正常工作了。
csporj是这样的:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Sdk="Microsoft.NET.Sdk" >
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="System"/>
<Reference Include="System.Core"/>
<Reference Include="System.Xml.Linq"/>
<Reference Include="System.Data.DataSetExtensions"/>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.0-alpha3" />
<Reference Include="Microsoft.CSharp"/>
<Reference Include="System.Data"/>
<Reference Include="System.Net.Http"/>
<Reference Include="System.Xml"/>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>
这与 azure 函数 csproj 相同。所以我不建议你在类库中添加Azure Function引用。您可以直接创建一个azure function项目。
关于类库中的 Azure Function 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974290/