【问题标题】:Easy way to build and deploy (to Azure) ASP.NET 5 in Visual Studio Team Services在 Visual Studio Team Services 中构建和部署(到 Azure)ASP.NET 5 的简单方法
【发布时间】:2015-12-16 15:42:36
【问题描述】:

我创建了一个示例 ASP.NET 5 应用程序(几乎是来自 New Solution 的示例),并将其推送到托管在 Visual Studio Team Services(前 Visual Studio Online)上的 GIT。我想设置与 Azure Web App(以前的 Azure 网站)的持续集成。我试图从 Azure 门户本身进行设置,它确实创建了一个新的构建定义,但它无法构建 ASP.NET 5。我找到了一个 guide 如何做到这一点,但它从来没有真正对我有用,我收到这样的错误,例如

在 C:\a\1\s\Frontend\src\Frontend\Frontend.xproj 解析解决方案文件时出错:调用目标已引发异常。

未定义或导入预定义类型“System.Void”

另一个问题是,安装dnvm、获取包等似乎真的需要很多时间。所以总而言之,让它工作起来很痛苦。

那么是否有真正的替代方案,或者更重要的是,微软正计划实施诸如 Build ASP.NET 5、将 ASP.NET 部署到 Azure 之类的东西,以使其变得容易,因为我认为使用当前的 ASP 很容易。 NET 4 应用程序。我真的希望它很快就会成为一种选择,因为目前的构建系统完全不可能。

【问题讨论】:

  • 能否提供编译失败的代码?具体来说......你在使用System.Void吗?
  • 还要确保向我们提供您当前的运行时和您的project.json。它真的看起来像一个运行时/包问题。
  • 好吧,我至少知道如何解决第一个问题(您必须关闭nuget restore),不确定第二个,我使用了默认项目和项目的一些修改代码。 json 也几乎是默认的)。我想知道如何解决 Void 问题,但这里的主要问题是 MS 计划使其正确,而不是目前修复它 :)
  • 您当前的运行时是什么以及您在project.json 中的依赖项是什么?如果两者不匹配,则框架找不到这些依赖项是正常的。至于使其正确,东西仍处于测试版/候选发布版中。有些人在他们的环境中仍然有 beta 运行时。它崩溃并不罕见。然而,一旦1.0 被击中,事情就会变得更干净。
  • 我运行了update1,但是由于某种原因没有这样的依赖,它们都是final1,我真的不知道如何正确修复它......

标签: asp.net-core azure-web-app-service tfsbuild azure-devops


【解决方案1】:

对于“System.Void”问题,请检查“global.json”文件中的运行时版本,并确保它与“project.json”文件中的依赖关系一致。

对于 dnvm 安装问题,由于目前 VSTS Hosted Build Agent 上没有安装 AspNet5 运行时环境,并且不同的用户可能使用不同的运行时版本,因此需要用户添加“PreBuild”PowerShell 步骤来读取运行时版本在“global.json”文件中,然后安装它。如果你能确保你永远只使用一个版本(例如:1.0.0-rc1-update1),你可以deploy your own build agent并在上面安装“1.0.0-rc1-update1”,那么你可以跳过在构建过程中安装 dnvm。

【讨论】:

  • 我在“project.json”中有rc1-final依赖,在“global.json”中有rc1-update1,这是默认的新项目。我在 Visual Studio 中有参考问题(必须一直手动运行 dnvm restore)。我应该如何解决它,为什么会发生这种情况?似乎根本没有-update1依赖,只有-final
  • 您知道更新托管构建代理的任何计划吗?
  • @IlyaChernomordik:我的猜测是 ASP.NET 5 RTM,which is expected Q1 2016
  • @IlyaChernomordik rc1-update1 与 rc1-final 兼容。您的应用程序可以在本地计算机上构建吗?能否尝试创建一个全新的 Asp.Net5 示例,看看是否可以成功构建?对于还原问题,是否启用“VS\Tools\Options\Nuget Package Manager”中的“允许 Nuget 下载丢失的包”选项?
  • @Eddie-MSFT 感谢工具的帮助,实际上我似乎需要检查“在构建期间自动检查包”,另一个已经启用。这似乎很奇怪,因为我并没有真正进行构建,但我想这就是迫使 Visual Studio 正确恢复 dnu 的原因。所以它看起来更像是一个 VS 错误,或者至少是一个缺失的功能。我在本地为两个平台(dnx、dnxcore)构建它也没有任何问题。
【解决方案2】:

看看http://riffer.eu/wordpress/?p=112。我有一个解决方案 vor asp.net core RC_1。 令人惊讶的是,您只需要两个 powershell 脚本 - 不需要编译/视觉工作室。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2016-11-18
    相关资源
    最近更新 更多