2017-11-18 20 views
1

私は最終的に正しい属性で生成するためにfunction.jsonファイルを取得できました。私がまだ苦労している唯一の問題は、scriptFileパスが間違った値に設定されている場合です。Azureファンクションfunction.jsonは正しくないscriptFileパスを生成します

"../bin/MyFunctions.dll"ではなく "bin/MyFunctions.dll"の値で生成されます。これは私がビルドしても公開しても起こります。

私がしようとすると、スクリプトホストを実行すると、私はエラーを取得する:

The following 1 functions are in error: 
Echo: Invalid script file name configuration. The 'scriptFile' property is set to a file that does not exist. 

手動で「../bin/MyFunctions.dll」に値を変更するには、問題を解決します。

csprojファイル

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard2.0</TargetFramework> 
    <NoWarn>NU1701</NoWarn> 
    </PropertyGroup> 
    <ItemGroup> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.0-beta3" /> 
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.6" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Reference Include="Microsoft.CSharp" /> 
    </ItemGroup> 
    <ItemGroup> 
    <None Update="host.json"> 
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    </None> 
    <None Update="local.settings.json"> 
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     <CopyToPublishDirectory>Never</CopyToPublishDirectory> 
    </None> 
    </ItemGroup> 
</Project> 

EchoFunction.cs

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Net; 
using Microsoft.AspNetCore.Mvc; 
using Microsoft.Extensions.Primitives; 
using Microsoft.AspNetCore.Http; 
using Microsoft.Azure.WebJobs.Host; 
using System.Linq; 
using Microsoft.Azure.WebJobs; 
using Microsoft.Azure.WebJobs.Extensions.Http; 

namespace EchoFunctionNameSpace 
{ 
    public class EchoFunction 
    { 
     [FunctionName("Echo")] 
     public static IActionResult Run(
      [HttpTriggerAttribute(AuthorizationLevel.Anonymous, "get", Route = "name/{name}/sname/{sname}")] 
      HttpRequest req, TraceWriter log, string name, string sname) 
     { 
      log.Info("C# HTTP trigger function processed a request."); 

      return new OkObjectResult($"Hello {name} {sname}"); 
     } 
    } 
} 

host.json

{} 

local.settings.json

{ 
    "IsEncrypted": false, 
    "Values": { 
     "AzureWebJobsStorage": "", 
     "AzureWebJobsDashboard": "" 
    } 
} 

これは私が持っている唯一の4つのファイルです。私はSDK関数ジェネレータコードのバグであると信じるものを見つけ

{ 
    "generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.6", 
    "configurationSource": "attributes", 
    "bindings": [ 
    { 
     "type": "httpTrigger", 
     "route": "name/{name}/sname/{sname}", 
     "methods": [ 
     "get" 
     ], 
     "authLevel": "anonymous", 
     "name": "req" 
    } 
    ], 
    "disabled": false, 
    "scriptFile": "bin/AzureFunctions.dll", 
    "entryPoint": "EchoFunctionNameSpace.EchoFunction.Run" 
} 
+1

を。プロジェクト設定の詳細を表示します。 – Mikhail

+0

追加情報 – Craigt

+1

ええ、あなたのファイルをコピーして貼り付けましたが、 '../bin'プロダクトをビルド/パブリッシュするだけです。サブフォルダなしで同じフォルダにある4つのファイルはすべてですか? – Mikhail

答えて

関連する問題