在Visual Studio Team Services中轻松构建和部署(到Azure)ASP.NET 5的方法

3
我创建了一个ASP.NET 5示例应用程序(基本上是来自新解决方案的示例),并将其推送到在Visual Studio Team Services(前身为Visual Studio Online)上托管的GIT。我想设置持续集成到Azure Web App(前Azure Web Site)。我尝试从Azure门户设置它,它确实创建了一个新的构建定义,但无法构建ASP.NET 5。我找到了一个指南,但它对我来说从未真正起作用,我会收到像这样的错误。

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

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

另一个问题是似乎安装dnvm,获取包等需要很长时间。总之,让它工作非常痛苦。

那么,是否有真正的替代方案,或者更重要的是,微软是否计划实现类似于构建ASP.NET 5、将ASP.NET部署到Azure等功能,使其与当前的ASP.NET 4应用程序一样易于操作。我真的希望这很快就会成为一个选择,因为目前的构建系统非常难以使用。


请提供编译失败的代码,具体来说...你是否使用了 System.Void - Maxime Rouiller
请确保向我们提供您当前的运行时和project.json文件。这看起来像是一个运行时/包问题。 - Maxime Rouiller
我知道如何解决第一个问题(你必须关闭NuGet还原),但对于第二个问题不确定,我使用了默认项目的稍微修改的代码,project.json 也基本上是默认的。我想知道如何解决Void问题,但主要问题在于微软计划将其变得更加完善,而不是暂时修复它 :) - Ilya Chernomordik
你目前的运行时是什么,project.json中有哪些依赖项?如果两者不匹配,框架找不到这些依赖项是很正常的。至于使其合适,这些东西仍处于beta/发布候选状态。一些人在他们的环境中仍然使用beta运行时。崩溃并不罕见。但是一旦1.0发布,事情会变得更加清晰。 - Maxime Rouiller
我运行了update1,但出于某种原因,没有像那样的依赖项,它们全部都是final1,我真的不知道如何正确修复它... - Ilya Chernomordik
2个回答

1
对于“System.Void”问题,请检查“global.json”文件中的运行时版本,并确保与“project.json”文件中的依赖项一致。
对于dnvm安装问题,由于VSTS Hosted Build Agent上尚未安装AspNet5运行时环境,并且不同用户可能使用不同的运行时版本,因此需要用户添加一个“PreBuild”PowerShell步骤来读取“global.json”文件中的运行时版本,然后安装它。如果您能确保始终只使用一个版本(例如:1.0.0-rc1-update1),则可以部署自己的构建代理并在其上安装“1.0.0-rc1-update1”,然后可以在构建过程中跳过dnvm安装。

@IlyaChernomordik rc1-update1与rc1-final兼容。您的应用程序能在本地机器上构建吗?您可以尝试创建一个全新的Asp.Net5示例,以查看是否可以成功构建。对于还原问题,您是否启用了“VS\工具\选项\Nuget包管理器”中的“允许Nuget下载缺少的包”选项? - Eddie Chen - MSFT
@IlyaChernomordik,你能分享详细的错误日志吗? - Eddie Chen - MSFT
据我所见,这是唯一的错误(我不确定是否有更详细的日志记录): Frontend\src\Frontend\Startup.cs (60, 49) 预定义类型“System.Void”未定义或未导入 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets (158, 5) 构建失败。 从msbuild.exe收到意外的退出代码:1 - Ilya Chernomordik
似乎是在引用包库的地方出现了问题(我有一个自定义的RouteConstraint,它在另一个库中。整个库只有这一个实现IRouteConstraint接口的类)。 - Ilya Chernomordik
@Eddie-MSFT,你找到解决这个问题的方法了吗? - Ilya Chernomordik
显示剩余5条评论

0

请看http://riffer.eu/wordpress/?p=112。在那里,我提供了一个针对asp.net core RC_1的解决方案。 令人惊讶的是,您只需要两个PowerShell脚本 - 不需要编译/Visual Studio。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接