gpt4 book ai didi

生成服务器上的 ASP.NET v5

转载 作者:行者123 更新时间:2023-12-02 01:36:31 25 4
gpt4 key购买 nike

我正在尝试在我们的构建服务器上构建一个 VS2015 ASP.NET v5 网络应用程序(基本上,在 Visual Studio 之外)。我们现有的脚本只是使用 csproj 文件调用 msbuild,但对于这个项目,我得到:

Project File is empty

在 Visual Studio 之外“构建”这些新 Web 应用程序的“故事”是什么?我相信他们仍然可以以 .NET 4.5 为目标(我希望如此,因为我们不会很快升级 Web 服务器)所以假设这是可能的。

最佳答案

好吧,dnx 项目中没有 .csproj,dnu 构建项目所需的一切都包含在 project.json 中。 .有一个 xproj 文件,但您可以忽略它。微软终于决定看到光明,并仅将 xproj 用于 VS 特定的“东西”,并且与 IDE 无关的项目详细信息放在 project.json 中。

因此,要构建一个 dnx 项目,您只需要正确版本的 dnx 和项目源代码。现在 AFAIK 没有开箱即用的解决方案,但一切都是通过命令行命令完成的,因此编写脚本应该很容易。这完全取决于您要构建的解决方案的稳健程度。

要从命令行构建一个 dnx 项目(假设您安装了正确的 dnx 并设置为事件状态),只需两个命令。 dnu restore运行依赖项检查,dnu(dnx 的一部分)有一个内置的 nuget 客户端,因此它会在需要时伸出手并获取依赖项。 dnu build运行实际编译。

所以 cd 到项目根目录(其中包含 project.json)并运行 dnu restore然后dnu build .

如果您需要动态支持不同的 dnx 版本,它会变得更加复杂。请记住,dnx 版本由运行时(coreclr 或 clr)、体系结构(x86、x64 等)和版本号标识。因此,如果您只是针对 x64 构建在 clr(完整的 .net 运行时)上,这消除了两个变量,但是如果项目需要比构建服务器上安装的运行时版本更新的版本,会发生什么情况?例如,假设您在构建服务器上安装(手动使用 dnvm)dnx-clr-win-x64.1.0.0-beta4,但在未来的某个时候,开发人员需要 dnx-clr-win-x64.1.0.0- beta6-1200 解决了一个错误。

简单的解决方案就是根据需要安装新的运行时版本,并根据需要的最新版本构建所有项目。这并不像乍听起来那么糟糕。一旦 dnx 退出测试版,对运行时的更改应该很少见。请记住,运行时是非常低级的代码和非托管 dll。它是 BCL 位于其上的引导 stub 。希望对于给定的操作系统、架构和运行时,dnx 不应该有那么多的变化。

要获得更强大的解决方案,您可以使用脚本来查找项目所需的运行时版本。它位于解决方案级别 global.json .然后脚本可以使用 dnvm list以确定它是否安装了该运行时。如果没有,则使用 dnvm installdnvm upgrade安装所需的版本。在开始构建之前,它将使用命令 dnvm use激活正确的运行时,然后继续 dnu restorednu build .

老实说,我希望出现一些非常强大的解决方案。任务运行器(gulp、grunt 等)是 .NET 5 中的一等公民。您的工作流很可能会涉及用于客户端依赖项解析的 bower、npm、grunt/gulp 和一些用于缩小 js 文件等任务的包。构建服务器也将需要所有这些,因此将构建任务作为 grunt 或 gulp 包似乎非常合适。

关于生成服务器上的 ASP.NET v5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30938571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com