最初我有一个可用的 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()
我使用的是 Visual Studio 2015 和 ASP.NET 5 Beta 7。
编辑: 经过一番尝试后,我认为我的答案不太正确。我现在意识到,在某些情况下,人们无法使用新型类库,例如现有的旧类库,移植可能不切实际。有什么办法可以做到这一点吗?
我尝试过dnupublish
并且它发布得非常好。然后,我将输出通过 FTP 传输到服务器上,但随后出现了运行时错误
。我尝试使用 Visual Studio 远程调试它。当我访问该网站时,我可以看到抛出异常,但我无法看出问题到底是什么。第一个抛出的异常是:
抛出异常:AspNet.Loader.dll 中的“System.InvalidOperationException”
当我查看日志时,它给我无法确定要运行的适当版本的运行时。
最佳答案
事实证明我使用了不正确的类库项目。我显然使用的是旧的类库,而不是新的 PREVIEW
版本,该版本也标有 (Package)
。
描述让我有点困惑,因为它说它用于创建 NuGet 包,但现在一切正常,并且 ASP.NET 5 项目可以部署到 Azure 并成功引用类库。
关于c# - 无法将引用类库的 ASP.NET 5 发布到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937124/