以下是DNX的说明:
.NET执行环境(DNX)是一个软件开发工具包(SDK)和运行时环境,具有构建和运行Windows,Mac和Linux的.NET应用程序所需的一切.它提供主机进程,CLR托管逻辑和托管入口点发现.DNX是为运行跨平台的ASP.NET Web应用程序而构建的,但它也可以运行其他类型的.NET应用程序,例如跨平台控制台应用程序.
DNX是单声道的替代品吗?如果没有,那会有什么区别?
(现在提出DNX问题3206 ...)
DNX环境:1.0.0-rc1,Windows 10 x64.
想象一下,我有三个解决方案:
这些解决方案中的每一个都有多个项目; 将所有项目都放在一个解决方案中是没有意义的,即使这样可以简化这一特定问题.
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的错误的问题?
我的最终目标是创建一个跨平台(非Web)控制台应用程序,所以我现在正在探索.NET Core.
在我之前的.NET项目中,我在Visual Studio中进行了所有开发,但我还创建了一个批处理/ MSBuild文件,因此我只需单击一下即可构建整个项目(包括设置,NuGet包,带二进制文件的zip文件等).这是以前项目的一个例子.
最后,我想用我的.NET Core测试项目做类似的事情.
但是现在我在第一步失败了:我无法在Visual Studio之外构建它,因此结果可以在没有安装.NET Core的另一台Windows机器上运行.
(在第一步中,我忽略了跨平台部分 - 我很乐意让它在Windows上运行)
我设法让它在Visual Studio 2015 Community Edition中运行如下:
在Visual Studio中创建新项目:"新建项目"⇒"Web"⇒"控制台应用程序(包)"
在Visual Studio中创建新的发布配置文件(菜单中的"Build"⇒"Publish").
这将创建一个PowerShell脚本(以及一个带有设置的XML文件)
当我再次在菜单中"构建"⇒"发布"时,Visual Studio显然会再次执行先前创建的PowerShell脚本.
结果略超过90 MB,由598个文件夹中的825个文件组成,如下所示:
当我将它复制到另一台机器上时(安装了Win 7/.NET 4/未安装的.NET Core ),它可以工作.
这个答案和这个答案听起来像我可以用来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)
结果包含一个 …
目前正在尝试了解.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进行编码,无论如何,框架都是框架.
但是在这里我们有这些平台,其中.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的某些版本?
按照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)
有关完整的堆栈跟踪,请参阅附带的屏幕截图.可能有什么不对?
我试图在Visual Studio Online的Build vNext平台中使用xUnit测试适配器运行我们的xUnit测试.
根据本文的规定,我们需要提供指向的自定义测试适配器路径xunit.runner.visualstudio.testadapter.dll.
但是这个包由NuGet恢复到一个全局包文件夹,即C:\Users\{user}\.dnx\packages?
我如何在构建步骤中引用此文件夹?
我们正在使用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
将ASP.NET 5 Web应用程序部署到Azure Web App时,我收到500内部服务器错误.
如何获取此异常的详细信息和堆栈跟踪?
我做了以下但没有运气:
在启动时使用诊断错误页面:
app.UseErrorPage();
ASPNET_ENV在Azure门户中设置:
使用DNX beta 6.
我已经在VS2015中开始了一个非常简单的"踢踏板"ASP.Net MVC(beta)项目,并且在围绕DNX和DNX Core引用时遇到了一个问题.
在这个例子中,我试图使用DateTime.ToShortDateString()并启用DNX Core的intellisense.
我知道这是因为这不是在DNX Core中实现的,我可以围绕它编写编译器指令.
这是正确的方法吗?这两个平台之间的差异是否记录在何处?最后,如果我是一个全Windows,所有的IIS所有的时间商店DNX核心提供任何东西或应该我的第一个任务是从project.json文件中删除它?
在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) 我正在为所有内容运行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) dnx ×10
c# ×4
.net ×2
.net-core ×2
asp.net-core ×2
xunit.net ×2
asp.net-mvc ×1
azure ×1
azure-devops ×1
coreclr ×1
dnu ×1
json ×1
mono ×1
windows ×1