类库中的Azure函数引用
问题描述:
我正在使用带有Azure函数的VS2017(C#)。它工作正常。所以现在我试图设置一个普通函数的类库。我找不到引用Microsoft.NET.Sdk.Functions(1.0.0)当我尝试添加引用(它被安装在vs2017,而不是Nuget),所以我直接从工作azure csproj复制到我的一个类库csproj类库中的Azure函数引用
<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>
这是作为天蓝功能的csproj相同。所以我不建议你在classlibrary中添加Azure函数引用。你可以直接创建一个天蓝色的函数项目。
谢谢,我想将TraceWrite日志传递给库,这就是为什么 – Robin
我做了像azure项目一样的设置更改,但它可以编译,但是当我将其添加为主Azure项目的引用时,找不到dll。 – Robin