Azure中的外部依赖项与netcore一起使用

时间:2017-11-30 22:13:57

标签: azure .net-core azure-functions

我已经能够使用net core编写Azure函数来运行。我现在已经添加了对“WindowsAzure.Storage”的引用,并且当我使用本地测试环境(“func host start”)时,我现在正在获得loaderexceptions。

我不能使用默认的表存储绑定器,因为我需要在不同的表中插入记录。

我使用预编译的函数,并在OSX上使用VSCode进行开发。如果支持或不支持此方案,我找不到任何信息。甚至可以使外部依赖项与Azure函数的2.0运行时一起使用。

本地SDK /运行时是

  • Azure Functions核心工具(2.0.1-beta.21)
  • 功能运行时版本:2.0.11370.0

我的csproj文件

<select id="vehicleLicensePlateState">

我的部分功能

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.0-beta3" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="3.0.0-beta3" />
    <PackageReference Include="WindowsAzure.Storage" Version="8.6.0" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="SearchTwitter\function.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

Function.json

namespace MyProject.Functions
{
    public class SearchFunction
    {

        public async static Task Run(TimerInfo myTimer, Binder binder, TraceWriter log)
        {

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(System.Environment.GetEnvironmentVariable("StorageConnection", EnvironmentVariableTarget.Process));
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
            CloudTable searchMetaDataTable = tableClient.GetTableReference("SearchMetaData");
            await searchMetaDataTable.CreateIfNotExistsAsync();

        }
 }

2 个答案:

答案 0 :(得分:1)

Azure功能托管环境默认提供Azure存储名称空间。您可以在此处找到更多详细信息:https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#referencing-external-assemblies

但是,如果这不是您正在寻找的,请放心,您可以通过将其添加到Function的csproj文件来使用任何外部NuGet包。有关如何执行此操作的示例,请查看此GitHub仓库中的示例代码https://github.com/lindydonna/CSharpHttpCore/blob/master/HttpTriggerCore/HttpTriggerCore.csproj

答案 1 :(得分:1)

对于预编译函数,WindowsAzure.Storage包是Microsoft.NET.Sdk.Functions的子依赖项,因此您无需单独引用它。

如果您仍然引用它,并且引用的版本错误,您将在整个地方发生冲突。

Microsoft.NET.Sdk.Functions的任何子依赖应该采取这种谨慎措施。否则,完全支持引用NuGets。