2014-06-18 43 views
6

我正在創建一個Azure WebJob控制檯應用程序,用於調整上傳到blob存儲的圖像大小。當在線跟隨任何代碼示例時,我無法引用和使用BlobInput和BlobOutput輸入參數屬性。我正在使用NuGet軟件包Microsoft.Azure.Jobs 0.3.0-beta(和Microsoft.Azure.Jobs.Core)。Azure WebJob的BlobInput和BlobOutput類在哪裏?

哪個命名空間BlogInput和BlobOutput中發現了什麼?我需要另一個NuGet包嗎?

這裏是我的代碼不編譯,因爲它不能解析BlobInput和BlobOutput:

using Microsoft.Azure.Jobs; 
using System.IO; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      JobHost host = new JobHost(); 
      host.RunAndBlock(); 
     } 

     public static void SquishNewlyUploadedPNGs([BlobInput("input/{name}")] Stream input, [BlobOutput("output/{name}")] Stream output) 
     { 
      //... 
     } 
    } 
} 
+0

那些屬性,所以類型名稱應該是BlobInputAttribute,BlobOutputAttribute。應該位於Microsoft.WindowsAzure.Jobs命名空間中的Microsoft.WindowsAzure.Jobs.dll中。或者至少他們曾經在那裏。嘗試打開JustDcompile中的所有Jobs sdk dll並搜索它們。 – Will

+0

當我反編譯Microsoft.Azure.Jobs.dll這些屬性沒有在哪裏可以找到。這是來自最新版本的NuGet包0.3.0-beta的程序集。如果我使用一個較舊的軟件包,比如說0.2.0-alpha,那麼這個程序集就叫做Microsoft.WindowsAzure.Jobs.dll,並且它們正如預期那樣。因此,從0.2.0升級到0.3.0不僅會將程序集名稱從Microsoft.WindowsAzure.Jobs重新命名爲Microsoft.Azure.Jobs,還會丟失BlogInputAttribute和BlobOutputAttribute。我想,一個選擇是使用0.2.2,但我寧願學習使用使用當前版本 –

+0

有趣的是我看到Microsoft.Azure.Jobs.dll包含BlobAttribute和BlobTriggerAttribute WebJobs。後者在程序集中被描述爲「表示將參數綁定到Azure Blob的屬性,導致在上傳blob時運行該方法」。我猜這是BlobInputAttribute的後裔,也許MS仍在玩弄名字。 –

回答

18

在Azure中WebJobs SDK Beta版,我們爲如下所述的屬性名稱。功能保持不變。

BlobInputAttribute -> BlobTriggerAttribute 
BlobOutputAttribute -> BlobAttribute 
QueueInputAttribute -> QueueTriggerAttribute 
QueueOutputAttribute -> QueueAttribute 

此外,軟件包名稱已更改。你應該使用:

http://www.nuget.org/packages/Microsoft.Azure.Jobs/0.3.0-beta 
http://www.nuget.org/packages/Microsoft.Azure.Jobs.Core/0.3.0-beta 
+0

感謝維克多我的回答,更新的名稱準確預期爲我工作,謝謝大家的快速響應。 –