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

时间:2015-08-11 08:44:29

标签: c# asp.net azure asp.net-core class-library

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

步骤:

  1. 创建新的ASP.NET 5 Web API预览模板项目(也创建解决方案)。
  2. 将类库添加到解决方案中。
  3. 从4.6
  4. 将类库目标框架更改为.NET 4.5.1
  5. ASP.NET 5项目中的引用类库。
  6. 尝试发布。
  7. 这是项目结构:

    enter image description here

    生成的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()
    

    我正在使用Visual Studio 2015和ASP.NET 5 Beta 7。

    修改 经过一些游戏后,我不认为我的答案是对的。我现在意识到有些人不能使用新类型的库,例如现有的旧类库,这可能对端口不切实际。有没有办法做到这一点?

    我尝试过dnu publish并且发布完全正常。然后我将输出FTP到服务器上,然后它给了我一个Runtime Error。我尝试使用Visual Studio远程调试它。我可以看到当我访问网站时抛出异常,但我无法确定问题究竟是什么。抛出的第一个例外之一是:

    Exception thrown: 'System.InvalidOperationException' in AspNet.Loader.dll

    当我查看日志时,它给了我Couldn't determine an appropriate version of runtime to run.

1 个答案:

答案 0 :(得分:1)

事实证明我使用的是不正确的类库项目。我显然使用旧的类库而不是新的PREVIEW版本,它也标有(Package)

Class Library Project

该描述让我感到有些不同,因为它说它用于创建NuGet包但现在一切正常,ASP.NET 5项目可以部署到Azure并成功引用类库。