1

我正在使用一个 asp.net 5 和 MVC 6 Web 应用程序以及一个带有 Web 服务 (WSDL) 的类库。我可以在 IIS express 上本地运行应用程序。我已经能够使用 localdb 以及 Azure db。但是,当我尝试将应用程序部署到 Azure 时,我收到 project.lock.json 错误,但我感觉这不是实际问题。

以下是我目前从 Visual Studio 2015 采取的步骤:

  • 创建一个新的 .Net5 Web 应用程序。
  • 向解决方案添加一个新的 .net4.5 类库项目。
  • 将 System.Web 和 Web 服务引用添加到类库。
  • 添加类库作为对 .Net5 Web 应用程序的引用。
  • 将 .Net5 Web 应用发布到 Azure Web 应用。

项目.json

{
  "webroot": "wwwroot",
  "userSecretsId": "aspnet5-test-2a8ca243-1965-45cb-b8f8-0e8684188d3e",
  "version": "1.0.0-*",

  "dependencies": {
    "EntityFramework.Commands": "7.0.0-beta7",
    "EntityFramework.SqlServer": "7.0.0-beta7",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta7",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta7",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta7",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta7",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta7",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta7",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta7",
    "Microsoft.AspNet.Mvc": "6.0.0-beta7",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta7",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta7",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta7",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta7",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta7",
    "Microsoft.Framework.Logging": "1.0.0-beta7",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta7",
    "Microsoft.Framework.Logging.Debug" : "1.0.0-beta7",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "MyTestService": "1.0.0-*"
      },
      "frameworkAssemblies": {
        "System.Web.Services": "4.0.0.0"
      }
    }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

需要注意的几点,我实际上已经从 project.json 中删除了 dnx50 框架注入。这是因为我在构建时收到了有关 dnx50 无法定位 system.web 的编译错误(因为 system.web 当前不是 .net5 的一部分)。另一件事是 project.lock.json 似乎正在正确更新,并在几个地方添加了 system.web 和 MyTestService 依赖项。

该项目将使用 gulp 和 bower 完成所有前端依赖项。然后我在输出窗口中收到此消息并且构建失败:

Copying to output path    
C:\Users\Me\AppData\Local\Temp\PublishTemp\TestProject113
C:\TestInstalls\TestProject113\wrap\MyTestService\project.lock.json(1,0): 
Error : The expected lock file doesn't exist. 
Please run "dnu restore" to generate a new lock file.

我运行 dnu restore 并且恢复成功。但是,当我尝试再次发布它时,我得到了同样的错误。

4

0 回答 0