Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法发布将类库引用到Azure的ASP.NET 5_C#_Asp.net_Azure_Asp.net Core_Class Library - Fatal编程技术网

C# 无法发布将类库引用到Azure的ASP.NET 5

C# 无法发布将类库引用到Azure的ASP.NET 5,c#,asp.net,azure,asp.net-core,class-library,C#,Asp.net,Azure,Asp.net Core,Class Library,最初我有一个正在工作的ASP.NET 5项目,可以毫无问题地发布到Azure。然后我决定将DAL拆分为一个单独的类项目,但遇到了许多依赖性问题。然后我决定创建一个带有空白类库的空白项目,看看是否能解决问题,但我甚至不能发布它 步骤: 创建新的ASP.NET 5 Web API预览模板项目(同时创建解决方案) 将类库添加到解决方案中 将类库目标框架从4.6更改为.NET 4.5.1 从ASP.NET 5项目中引用类库 试图发布 这是项目结构: 生成的ASP.NET 5project.json:

最初我有一个正在工作的ASP.NET 5项目,可以毫无问题地发布到Azure。然后我决定将DAL拆分为一个单独的类项目,但遇到了许多依赖性问题。然后我决定创建一个带有空白类库的空白项目,看看是否能解决问题,但我甚至不能发布它

步骤:

  • 创建新的ASP.NET 5 Web API预览模板项目(同时创建解决方案)
  • 将类库添加到解决方案中
  • 将类库目标框架从4.6更改为.NET 4.5.1
  • 从ASP.NET 5项目中引用类库
  • 试图发布
  • 这是项目结构:

    生成的ASP.NET 5
    project.json

    "frameworks": {
        "dnx451": {
            "dependencies": {
                "ClassLibrary1": "1.0.0-*"
            }
        },
        "dnxcore50": { }
    },
    
    因此,它成功引用,我可以在自托管上构建和部署,但如果我尝试将其发布到Azure,我会收到以下错误消息:

    The "Dnu" task failed unexpectedly.
    System.Exception: 
    Microsoft .NET Development Utility CLR-x86-1.0.0-beta6-12256
    Copying to output path C:\Users\MyUserDir\AppData\Local\Temp\PublishTemp
    Time elapsed 00:00:04.1309210
    
       at Microsoft.DNX.Tasks.Dnu.Execute()
       at      Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
       at Microsoft.Build.BackEnd.TaskBuilder.    <ExecuteInstantiatedTask>d__26.MoveNext()
    
    该“Dnu”任务意外失败。
    系统。例外情况:
    Microsoft.NET开发实用程序CLR-x86-1.0.0-beta6-12256
    正在复制到输出路径C:\Users\MyUserDir\AppData\Local\Temp\PublishTemp
    时间流逝00:00:04.1309210
    在Microsoft.DNX.Tasks.Dnu.Execute()中
    位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
    位于Microsoft.Build.BackEnd.TaskBuilder。d_u26.MoveNext()
    
    我正在使用Visual Studio 2015和ASP.NET 5 Beta 7

    编辑: 经过一番周旋,我认为我的答案不太正确。我现在意识到有些情况下不能使用新类型的类库,例如现有的旧类库,这可能不适合移植。有没有办法做到这一点

    我试过做
    dnu publish
    ,它的发布效果非常好。然后,我将输出FTP到服务器上,但它会给我一个
    运行时错误
    。我尝试使用VisualStudio远程调试它。我可以看到当我访问该站点时抛出异常,但我无法看到问题的确切原因。引发的第一个异常之一是:

    抛出异常:AspNet.Loader.dll中的“System.InvalidOperationException”


    当我查看日志时,它告诉我
    无法确定运行时的适当版本。

    结果表明我使用的类库项目不正确。显然,我使用的是旧类库,而不是新的
    预览版
    ,该版本也标有
    (Package)


    这个描述让我有点不舒服,因为它说它是用来创建NuGet包的,但现在一切正常,ASP.NET 5项目可以部署到Azure,并成功引用类库。

    ClassLibrary1是否也针对.NET Core?e、 g.ClassLibrary1是否也有一个“project.json”?如果删除dnxcore目标,会发生什么情况?@natemcmaster没有,它只针对.NET Framework 4.5.1。我已经用ClassLibrary1的结构更新了这篇文章,它没有
    project.json
    @mbudnik发生了相同的错误。我在更广泛的类库中看到了完全相同的问题,该类库本身需要一些引用(2个DLL),但“新建”类库类型的引用管理器在我单击“浏览”时不会打开“文件”对话框。你能看看这个按钮是否对你有用吗?@Gabriël这个文件对话框可以为我打开这个类库。