标签: dnx

.NET执行环境(DNX)是否与mono相似?

以下是DNX的说明:

.NET执行环境(DNX)是一个软件开发工具包(SDK)和运行时环境,具有构建和运行Windows,Mac和Linux的.NET应用程序所需的一切.它提供主机进程,CLR托管逻辑和托管入口点发现.DNX是为运行跨平台的ASP.NET Web应用程序而构建的,但它也可以运行其他类型的.NET应用程序,例如跨平台控制台应用程序.

DNX是单声道的替代品吗?如果没有,那会有什么区别?

.net mono dnx

31
推荐指数
2
解决办法
7822
查看次数

global.json中父相对目录的预期行为是什么?

(现在提出DNX问题3206 ...)

DNX环境:1.0.0-rc1,Windows 10 x64.

想象一下,我有三个解决方案:

  • 应用1
  • 应用2
  • 共同

这些解决方案中的每一个都有多个项目; 将所有项目都放在一个解决方案中是没有意义的,即使这样可以简化这一特定问题.

Application1和Application2中的各种项目依赖于Common中的项目.他们的project.json文件以正常方式表明依赖.虽然最终我想将工件从Common发布到NuGet服务器(内部或外部),但暂时从源代码构建所有内容是有意义的.

我可以通过编辑global.json(比如)Application1来做到这一点:

{
  "projects": [ "src", "test", "../Common/src" ], 
  "sdk": { "version": "1.0.0-rc1-final"  }
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以dnu restore 从Application1目录执行...但不能从根目录执行.(错误是"无法找到依赖关系'Common'> = 0.0.0-*".)我可以dnu restore Application1从根目录运行,但不仅仅是dnu restore.

我已经尝试了很多方法来引用Common src目录(包括"./Common/src","Common/src","../sort-name/Common/src"),但是没有任何喜悦然而.在每种情况下,我都会收到上面显示的错误消息.我尝试过使用,dnu -v restore但似乎没有提供任何关于哪些目录被探测为基于源的包的额外信息.

那么,如何"../Common/src"可在解决global.json?这是我所描述的开发场景的合理方法,如果是这样只是提交针对DNX的错误的问题?

dnx dnu

28
推荐指数
1
解决办法
1380
查看次数

通过命令行构建.NET Core应用程序,以便它可以在未安装.NET Core的计算机上运行

我的最终目标是创建一个跨平台(非Web)控制台应用程序,所以我现在正在探索.NET Core.

在我之前的.NET项目中,我在Visual Studio中进行了所有开发,但我还创建了一个批处理/ MSBuild文件,因此我只需单击一下即可构建整个项目(包括设置,NuGet包,带二进制文件的zip文件等).这是以前项目的一个例子.

最后,我想用我的.NET Core测试项目做类似的事情.
但是现在我在第一步失败了:我无法在Visual Studio之外构建它,因此结果可以在没有安装.NET Core的另一台Windows机器上运行.
(在第一步中,我忽略了跨平台部分 - 我很乐意让它在Windows上运行)


是)我有的

我设法让它在Visual Studio 2015 Community Edition中运行如下:

  1. 在Visual Studio中创建新项目:"新建项目"⇒"Web"⇒"控制台应用程序(包)"

  2. 在Visual Studio中创建新的发布配置文件(菜单中的"Build"⇒"Publish").
    这将创建一个PowerShell脚本(以及一个带有设置的XML文件)

这是我在GitHub上的测试项目.

当我再次在菜单中"构建"⇒"发布"时,Visual Studio显然会再次执行先前创建的PowerShell脚本.
结果略超过90 MB,由598个文件夹中的825个文件组成,如下所示:

Visual Studio发布结果

当我将它复制到另一台机器上时(安装了Win 7/.NET 4/安装的.NET Core ),它可以工作.


我试图在Visual Studio外获得相同的结果

1. dotnet发布

这个答案这个答案听起来像我可以用来dnu publish通过命令行获得相同的结果.
据我所知,.NET的核心部分仍移动的目标,现在,所以显然dnu现在dotnet不是.

所以我尝试为它执行dotnet publish(并创建一个批处理文件):

dotnet publish "%~dp0\src\CoreTestVisualStudio" -c Release -r win7-x64 -o "%~dp0\release\cli"
Run Code Online (Sandbox Code Playgroud)

结果包含一个 …

c# visual-studio .net-core coreclr dnx

28
推荐指数
2
解决办法
1万
查看次数

.NET平台标准中的平台是什么?

目前正在尝试了解.NET平台标准我发现自己对"不同平台"的想法非常困惑.

我会尽力说清楚.我目前关于.NET Framework的内容是,.NET粗略地说是由CLR,BCL和支持软件组成,用于引导CLR并提供虚拟机和底层操作系统之间的接口.

因此,当我们使用.NET Framework进行编码时,我们确实针对框架的某个版本,因为我们从BCL使用的类型带有框架,因此依赖于特定的版本.

现在,根据我的理解,.NET Core完全不同.并非所有人都挤在一起.我们有CoreCLR,它是运行IL的轻量级VM,CoreFX是正确组织为NuGet包的库,我们到目前为止还提供DNX/DNVM/DNU,它们提供了支持,如启动CoreCLR并与之连接. OS.

无论如何,尽管我们在Windows 7,Windows 8或Windows 10上安装了框架,但我们仍然针对该框架进行编码.

现在,在.NET Platform Standard规范中,我们看到以下定义:

平台 - 例如.NET Framework 4.5,.NET Framework 4.6,Windows Phone 8.1,MonoTouch,UWP等.

我们还看到了一个平台列表,其中包括

  • .NET Framework 2.0 - 4.6
  • Windows 8
  • Windows Phone 8.1
  • Silverlight 4,5
  • .NET Framework 4.5.1上的DNX - 4.6
  • .NET Core 5.0上的DNX

现在这让我很困惑.我总是这样说:我们针对.NET Framework进行编码,无论如何,框架都是框架.

但是在这里我们有这些平台,其中.NET框架只是众多平台中的一个.我们有Windows 8,但是等一下,在Windows 8上运行.NET与在任何其他操作系统上运行.NET不同吗?为什么它与.NET Framework 2.0 - 4.6平台分开?

我们还将DNX作为特定平台.这让我想知道:平台是与启动虚拟机和提供操作系统接口相关的"支持"吗?或者平台包括虚拟机?

无论如何,可以看出我很困惑.那些平台到底是什么以及这与我目前对.NET Framework的理解有何关系?另外,为什么.NET Framework 2.0 - 4.6被描述为单独的?除非是.NET Core,否则这里所描述的一切都不是.NET Framework的某些版本?

.net c# windows .net-core dnx

27
推荐指数
3
解决办法
5155
查看次数

使用VSCode,DNX和kestrel运行第一个ASP.NET 5应用程序会导致IOException

按照Visual Studio代码文档中描述的步骤,dnx . kestrel在Mac OS X上通过VSCode的命令调色板运行最终命令会在访问http:// localhost:5001时导致IOException :

kqueue() FileSystemWatcher has reached the maximum nunmber of files to watch.
Run Code Online (Sandbox Code Playgroud)

有关完整的堆栈跟踪,请参阅附带的屏幕截图.可能有什么不对?在此输入图像描述

dnx visual-studio-code kestrel-http-server

24
推荐指数
1
解决办法
3034
查看次数

使用xUnit适配器在TFS/VSO Build vNext中运行单元测试

我试图在Visual Studio Online的Build vNext平台中使用xUnit测试适配器运行我们的xUnit测试.

根据本文的规定,我们需要提供指向的自定义测试适配器路径xunit.runner.visualstudio.testadapter.dll.

但是这个包由NuGet恢复到一个全局包文件夹,即C:\Users\{user}\.dnx\packages

我如何在构建步骤中引用此文件夹?

VSO vNext构建测试步骤

我们正在使用VS 2015和DNX项目.

编辑:

我甚至尝试直接指向包路径DLL:

C:\Users\buildagent\.dnx\packages\xunit.runner.visualstudio\2.1.0-beta4-build1109\build\_common
Run Code Online (Sandbox Code Playgroud)

它似乎仍然没有使用适配器:

Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\a\8ac4a4f6\Root\artifacts\bin\MyProject.UnitTest\release\dnx451\TransitApi.UnitTest.dll"  /TestAdapterPath:C:\Users\buildguest\.dnx\packages\xunit.runner.visualstudio\2.1.0-beta4-build1109\build\_common /UseVsixExtensions:true /logger:trx
Microsoft (R) Test Execution Command Line Tool Version 14.0.23107.0
Copyright (c) Microsoft Corporation.  All rights reserved.
Starting test execution, please wait...
Warning: No test is available in C:\a\8ac4a4f6\Root\artifacts\bin\MyProject.UnitTest\release\dnx451\TransitApi.UnitTest.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.
No results found to …
Run Code Online (Sandbox Code Playgroud)

xunit.net visual-studio-2015 dnx azure-devops azure-pipelines

24
推荐指数
1
解决办法
4796
查看次数

在Azure Web应用程序中显示ASP.NET 5错误页面

将ASP.NET 5 Web应用程序部署到Azure Web App时,我收到500内部服务器错误.

在此输入图像描述

如何获取此异常的详细信息和堆栈跟踪?

我做了以下但没有运气:

  • 在启动时使用诊断错误页面:

    app.UseErrorPage();

  • ASPNET_ENV在Azure门户中设置:

Azure Web App应用程序设置

使用DNX beta 6.

azure azure-web-sites asp.net-core-mvc dnx asp.net-core

24
推荐指数
2
解决办法
5695
查看次数

DNX与DNX Core

我已经在VS2015中开始了一个非常简单的"踢踏板"ASP.Net MVC(beta)项目,并且在围绕DNX和DNX Core引用时遇到了一个问题.

在这个例子中,我试图使用DateTime.ToShortDateString()并启用DNX Core的intellisense.

DNX核心错误

我知道这是因为这不是在DNX Core中实现的,我可以围绕它编写编译器指令.

条件编译

这是正确的方法吗?这两个平台之间的差异是否记录在何处?最后,如果我是一个全Windows,所有的IIS所有的时间商店DNX核心提供任何东西或应该我的第一个任务是从project.json文件中删除它?

asp.net-mvc visual-studio-2015 dnx

23
推荐指数
1
解决办法
9526
查看次数

xunit不会将消息写入"输出"窗格

在VS 2015社区中,我有一个示例ASP.NET 5(vNext)项目和一个带有单元测试的项目(xUnit.net).DNX的版本是1.0.0-beta5.我的目标是在测试运行期间将消息添加到输出窗格. 在这里我采取了一种方法来做到这一点,所以我的单元测试代码如下所示:

using Xunit;
using Xunit.Abstractions;

namespace UnitTests
{

    public class UnitTest1
    {
        ITestOutputHelper output;

        public UnitTest1(ITestOutputHelper output)
        {
            this.output = output;
        }

        [Fact]
        public void TestTestTest()
        {
            output.WriteLine("Test Message");
            Assert.Equal(2, 2);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio Test Explorer发现了这个测试(没关系),但是我在"输出"窗格(来自"测试")中的所有内容都是:

------ Run test started ------
------ Test started: Project: UnitTests ------
Starting  Microsoft.Framework.TestHost [C:\Users\*******\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta5\bin\dnx.exe --appbase "C:\Users\*******\Documents\Visual Studio 2015\Projects\MvcMovie\UnitTests" Microsoft.Framework.ApplicationHost --port 55837 Microsoft.Framework.TestHost --port 55893]
Connected to Microsoft.Framework.TestHost
Running tests in 'C:\Users\*******\Documents\Visual Studio 2015\Projects\MvcMovie\UnitTests\project.json'
========== Run test finished: 1 …
Run Code Online (Sandbox Code Playgroud)

c# xunit.net visual-studio-2015 dnx

23
推荐指数
3
解决办法
6294
查看次数

"预期的锁定文件不存在.请在我完成后立即运行"dnu restore"

我正在为所有内容运行beta7,包括EF 7.我正在尝试使用ASP.NET 5应用程序模板项目连接到我的远程现有数据库.我的project.json看起来像这样:

{
  "webroot": "wwwroot",
  "userSecretsId": "aspnet5-XXX-409e9e37-b7bb-4185-b7aa-6dc336087524",
  "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": { },
    "dnxcore50": { }
  },

  "exclude": [ …
Run Code Online (Sandbox Code Playgroud)

c# json entity-framework-core dnx asp.net-core

23
推荐指数
1
解决办法
1万
查看次数