【发布时间】:2023-03-13 12:35:01
【问题描述】:
我有一个可以在本地构建和运行良好的项目。但是,当我将它推送到我的服务器(Windows Server 2012 R2)时,它无法构建。它没有给我任何关于它为什么失败的细节。即使我添加了详细标志。
PS C:\projectroot> dotnet -v build
遥测:已启用
对象引用未设置为对象的实例。
我在事件日志中看不到任何内容。我还有其他地方可以查找错误信息以缩小范围吗?还有其他想法吗?
我怀疑它可能缺少一些依赖项,因为它在本地工作,但不知道在哪里可以找到它。
这是我的 project.json 的副本。在找到单独构建项目的解决方法之前,我尝试了几种组合方式。
{
"webroot": "wwwroot",
"userSecretsId": "secret",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNetCore.Mvc.Core": "1.0.1",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.1",
"Microsoft.AspNetCore.Identity": "1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.EntityFrameworkCore": "1.0.1",
"AutoMapper": "4.1.1",
"MyApp.Domain": "1.0.0-*",
"MyApp.Configuration": "1.0.0-*",
"MyApp.Data": "1.0.0-*",
"MyApp.Data.EF6": "1.0.0-*",
"MyApp.Services": "1.0.0-*",
"MyApp.Services.ETL": "1.0.0-*",
"Scrutor": "1.3.1",
"System.Linq": "4.0.0",
"HtmlSanitizer": "3.2.105",
"Microsoft.AspNet.Identity.Core": "2.2.1",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.EntityFrameworkCore.Design": {
"type": "build",
"version": "1.0.0-preview2-final"
},
"Microsoft.EntityFrameworkCore.Tools": {
"type": "build",
"version": "1.0.0-preview2-final"
}
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"net461": {
}
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views/**/*.cshtml",
"web.config",
"config.json",
"logs",
"Aspose.Pdf.lic"
]
},
"scripts": {
"prepublish": [
"npm install",
"bower install",
"gulp clean",
"gulp min"
],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"compile": {
"exclude": [
"wwwroot",
"node_modules",
"bower_components"
]
}
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
}
}
【问题讨论】:
-
你能构建任何其他项目吗,例如你的服务器上有任何你好世界吗?你能发布你得到的完整输出吗?你能发布你的 project.json 的内容吗?
-
是的。我可以构建一个使用 dotnet new 创建的项目。我实际上取得了一些进展。我发现如果我单独构建所有项目,按照依赖顺序,它就会成功。因此,该错误似乎与引用尚未构建的项目有关。所以我现在有一个解决方法,但这对我来说似乎是一个错误。以上是完整的输出。这就是使故障排除变得如此困难的原因。甚至没有要继续的堆栈跟踪。如果您仍然认为它相关,我可以在回到我的计算机时发布 project.json。
-
您在服务器上安装了哪些 .Net Core 内容?运行时/SDK 等。你能澄清一下你的解决方案结构是什么,这样我就可以在我的机器上复制这个问题。
-
我安装了此处列出的 VS Update 3 和 Core 1.0.1 - microsoft.com/net/core#windows。我在上面添加了我当前 project.json 的副本。从那里您可以看到 Web 项目引用了其他几个项目(带有 MyApp 前缀)。谢谢您的帮助。我确实想澄清一下,目前单独构建项目的解决方法对我有用。我只是将它们全部编写为以正确的顺序构建。因此,目前这并不紧急。虽然我很好奇原因是什么,或者它是否是一个值得报告的错误。
标签: asp.net .net asp.net-core .net-core