在面向 .NET Framework 4.7 的 WebJob 中使用 .NET Core 2.0 库
Using .NET Core 2.0 Libraries in WebJob Targeting .NET Framework 4.7
我有一堆 class 在 .NET Core 2.0 中创建的库,我想在我正在创建的新 WebJobs 项目中使用它们。 WebJobs 项目以 .NET Framework 4.7 为目标。
当我尝试引用它们时,我收到一条错误消息:
Assembly 'MyNetCore20Library' with identity ... uses 'System.Runtime,
Version=4.2.0.0... which has a higher version than referenced assembly
'System.Runtime' with identity 'System.Runtime, Version=4.1.2.0,
Culture=neutral, PublicKeyToken=b03f5f11d50a3a'
知道如何在新的 WebJobs 项目中使用我的 .NET Core 2.0 库吗?
P.S。不幸的是,我们还不能在 .NET Core 中创建 WebJobs,这就是我尝试混合和匹配两个框架的原因。不疯狂,但我应该能够做到。
根据您的描述,我建议您可以尝试使用net core2.0控制台应用程序来创建web作业。
1.Created 网络核心 2.0 项目。
然后从 Nuget 包管理器安装 Microsoft.Azure.WebJobs(3.0.0-beta2)。
2.Change控制台应用程序的主要方法代码如下:
使用Microsoft.Azure.WebJobs;
使用系统;
使用 System.IO;
namespace NetCore2Webjob
{
class Program
{
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", "connection");
Environment.SetEnvironmentVariable("AzureWebJobsStorage", "storage connection");
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
host.RunAndBlock();
}
}
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, TextWriter log)
{
log.WriteLine(message);
}
}
}
3.Click publish 发布控制台应用程序。
4.Locate publishoutput 文件夹并创建了一个 run.cmd 文件。
使用记事本打开run.cmd并添加以下代码:
dotnet {yourporjectname}.dll
示例:
dotnet NetCore2Webjob.dll
5.Compress 整个 publishoutput 文件夹作为 zip 文件。
6.Open webjobs 门户并上传此 zip。
7.Wait 网络应用程序安装了网络作业
结果:
我有一堆 class 在 .NET Core 2.0 中创建的库,我想在我正在创建的新 WebJobs 项目中使用它们。 WebJobs 项目以 .NET Framework 4.7 为目标。
当我尝试引用它们时,我收到一条错误消息:
Assembly 'MyNetCore20Library' with identity ... uses 'System.Runtime, Version=4.2.0.0... which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f11d50a3a'
知道如何在新的 WebJobs 项目中使用我的 .NET Core 2.0 库吗?
P.S。不幸的是,我们还不能在 .NET Core 中创建 WebJobs,这就是我尝试混合和匹配两个框架的原因。不疯狂,但我应该能够做到。
根据您的描述,我建议您可以尝试使用net core2.0控制台应用程序来创建web作业。
1.Created 网络核心 2.0 项目。
然后从 Nuget 包管理器安装 Microsoft.Azure.WebJobs(3.0.0-beta2)。
2.Change控制台应用程序的主要方法代码如下:
使用Microsoft.Azure.WebJobs; 使用系统; 使用 System.IO;
namespace NetCore2Webjob
{
class Program
{
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", "connection");
Environment.SetEnvironmentVariable("AzureWebJobsStorage", "storage connection");
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
host.RunAndBlock();
}
}
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message, TextWriter log)
{
log.WriteLine(message);
}
}
}
3.Click publish 发布控制台应用程序。
4.Locate publishoutput 文件夹并创建了一个 run.cmd 文件。
使用记事本打开run.cmd并添加以下代码:
dotnet {yourporjectname}.dll
示例:
dotnet NetCore2Webjob.dll
5.Compress 整个 publishoutput 文件夹作为 zip 文件。
6.Open webjobs 门户并上传此 zip。
7.Wait 网络应用程序安装了网络作业
结果: