标签: dnx

NoWarn不在DNX中工作

在我的测试项目中,我有一些未在代码中分配的私有字段,但是被分配了反射.

编译时,我收到如下警告:

警告CS0649字段'CLASSNAME.FIELDNAME'永远不会被赋值,并且将始终具有其默认值null

我已经尝试添加<NoWarn>649</NoWarn>到xproj中的第一个PropertyGroup.但我仍然得到错误.

NoWarn在DNX中不起作用吗?或者我做错了什么?这个问题还有其他解决办法吗?

c# compiler-warnings dnx

16
推荐指数
1
解决办法
356
查看次数

使用Roslyn在引用的程序集中获取接口实现

我想在我正在开发的框架中绕过一些经典的汇编扫描技术.

所以,说我已经定义了以下合同:

public interface IModule
{

}
Run Code Online (Sandbox Code Playgroud)

这就是说Contracts.dll.

现在,如果我想发现这个接口的所有实现,我们可能会做类似以下的事情:

public IEnumerable<IModule> DiscoverModules()
{
    var contractType = typeof(IModule);
    var assemblies = AppDomain.Current.GetAssemblies() // Bad but will do
    var types = assemblies
        .SelectMany(a => a.GetExportedTypes)
        .Where(t => contractType.IsAssignableFrom(t))
        .ToList();

    return types.Select(t => Activator.CreateInstance(t));
}
Run Code Online (Sandbox Code Playgroud)

不是一个很好的例子,但它会做.

现在,这些类型的汇编扫描技术可能完全不足,而且它们都在运行时完成,通常会影响启动性能.

在新的DNX环境中,我们可以使用ICompileModule实例作为元编程工具,因此您可以将实现捆绑ICompileModuleCompiler\Preprocess项目中的文件夹中,并让它做一些时髦的事情.

我的目标是使用一个ICompileModule实现来完成我们在运行时在编译时所做的工作.

  • 在我的引用(包括编译和程序集)和我当前的编译中,发现所有可实现的实例 IModule
  • 创建一个类,让我们ModuleList用一个实现来调用它,该实现产生每个模块的实例.
public static class ModuleList
{
    public static IEnumerable<IModule>() GetModules()
    {
        yield return new Module1();
        yield return new Module2();
    } …
Run Code Online (Sandbox Code Playgroud)

c# metaprogramming roslyn dnx

15
推荐指数
2
解决办法
1574
查看次数

DNX beta8-15530:无法加载文件或程序集"Microsoft.DNX.PackageManager"

我在包管理器控制台中运行此命令以升级dnx.

"dnvm upgrade -u default"
Run Code Online (Sandbox Code Playgroud)

一旦它得到更新,我可以看到(C:\ Users\Chandrasekar.dnx\runtimes)新的运行时版本,如下所述

"dnx-clr-win-x86.1.0.0-beta8-15530"  
Run Code Online (Sandbox Code Playgroud)

我开始在VS2015中创建新项目 - > ASPNET 5 Web应用程序,它最终出现了一些错误.

在此输入图像描述

在输出窗口中,您可以看到错误"无法加载'Microsoft.DNX.PackageManager' ",根据此公告,它已被重命名为"Microsoft.Dnx.Tooling",所以我的问题是为什么新的DNX beta 8版本仍然依赖在这个删除或重命名的DLL'Microsoft.DNX.PackageManager '

输出窗口错误:

PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git
C:\Users\Chandrasekar\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta8-15530\bin\dnx.exe "C:\Users\Chandrasekar\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta8-15530\bin\lib\Microsoft.DNX.PackageManager\Microsoft.DNX.PackageManager.dll" restore "C:\Users\Chandrasekar\Documents\Visual Studio 2015\Projects\DNX8\src\DNX8" -f "C:\Program Files (x86)\Microsoft Web Tools\DNU"
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.DNX.PackageManager' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.DNX.PackageManager'
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence …
Run Code Online (Sandbox Code Playgroud)

visual-studio-2015 coreclr dnx dnvm asp.net-core

15
推荐指数
2
解决办法
6325
查看次数

如何在DNX Core 5.0(ASP.NET 5)中引用执行程序集?

我正在移植.NET 3.5 - 4.5中的一些代码.在我的程序集内部,我有一些代码从当前正在执行的程序集中读取资源.但是,DNX核心5.0中GetExecutingAssembly()Assembly类型不是方法.

var xsdStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(xsdPath);
Run Code Online (Sandbox Code Playgroud)

Assembly.GetExecutingAssembly()在DNX核心5.0中相当于什么?或者,如果我需要一个命名空间来获取该方法(也许是扩展方法?),那么命名空间是什么?

c# .net-assembly asp.net-core-mvc dnx asp.net-core

15
推荐指数
1
解决办法
4865
查看次数

如何考虑请求和响应范围标头流式传输视频或文件?

我现在正在使用FileStreamResult它,它可以流式传输视频,但不能寻找它.它总是从头开始.

我正在使用,ByteRangeStreamContent但似乎它不再可用了dnxcore50.

那怎么办?

我是否需要手动解析请求范围标头并编写一个自定义FileResult来设置响应Content-Range和其余标头,并将缓冲区范围写入响应主体,或者是否已经实现了某些内容并且我错过了它?

asp.net-core-mvc dnx

15
推荐指数
2
解决办法
6566
查看次数

如何为ASP.NET 5项目设置TeamCity构建

我正在尝试为我正在开发的网站设置CI服务器,但我找不到有关如何使用新的ASP.NET 5的任何信息.

msbuild teamcity dnx asp.net-core

14
推荐指数
2
解决办法
8498
查看次数

xUnit.net v2未在Visual Studio 2015中发现.NET核心测试

我真的很沮丧这个问题.我已经尝试更改版本号,但测试资源管理器中没有显示任何测试.

在测试输出窗口中,我可以看到此输出

Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to test project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 63954 list ]
Unable to start Microsoft.Framework.TestHost
========== Discover test finished: 0 found (0:00:36.5471185) ==========
Run Code Online (Sandbox Code Playgroud)

这是如此脆弱,有时测试显示然后他们消失了.重启VS没有帮助,重新安装xunit/xunit运行器也没有帮助.

在另一个测试项目中,我得到了不同的输出,但仍未显示测试

Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 64421 list ]
Connected to Microsoft.Framework.TestHost
Discovering tests in 'path to project\project.json'
========== Discover test finished: 0 found (0:00:35.9341416) ==========
Run Code Online (Sandbox Code Playgroud)

这是我的project.json的一部分

"commands": {
    "test": "xunit.runner.dnx"
  },
  "dependencies": {
    "Microsoft.AspNet.Http": "1.0.0-*",    
    "Microsoft.AspNet.Http.Core": "1.0.0-*",
    "Microsoft.AspNet.TestHost": "1.0.0-*",    
    "Moq": "4.2.1502.911", …
Run Code Online (Sandbox Code Playgroud)

xunit visual-studio-2015 .net-core dnx xunit2

14
推荐指数
2
解决办法
3175
查看次数

Visual Studio代码:无法启动外部程序dotnet

Visual Studio代码1.0.0

Mac OS X 10.11.4

已安装DNX,我可以从终端运行.NET Core应用程序.尝试运行.NET Core项目时出现以下错误.

输出窗口:

无法启动外部程序dotnet.

产生dotnet ENOENT

有什么建议?

dnx visual-studio-code asp.net-core

14
推荐指数
1
解决办法
2142
查看次数

project.json中的'prebuild'脚本无法运行

我有一个使用DNX框架的.NET 5 Web应用程序,我想在构建项目时运行'npm install','bower install'等.

现在我可以在发布时使用'prepublish',但它似乎不适用于'prebuild',虽然我看到它可能在这里

我现在拥有的:

"scripts": {
    "prepublish": [ "npm install", "bower install", "tsd install", "gulp min" ]
}
Run Code Online (Sandbox Code Playgroud)

dnx project.json asp.net-core

13
推荐指数
3
解决办法
3125
查看次数

在ThreadContextChanged上,AsyncLocal值更新为null

我试图了解AsyncLocal应该如何在.Net 4.6中运行.我将一些数据放入AsyncLocal ......但是当ThreadContext更改时,它被设置为null.我正在使用AsyncLocal的全部原因是在等待异步操作时尝试跨线程保留/缓存此值.知道为什么会特别调用它并在上下文发生变化时设置为null吗?关于AsyncLocal的文档非常稀疏......也许我已经把它弄错了.

public class RequestContextProvider : IRequestContextProvider
{
    private static readonly AsyncLocal<IRequestContext> _requestContext = new AsyncLocal<IRequestContext>(ValueChangedHandler);

    private static void ValueChangedHandler(AsyncLocalValueChangedArgs<IRequestContext> asyncLocalValueChangedArgs)
    {
        **//This is just here to observe changes...when I await a call that 
        //causes control to pass to a different thread..this is called 
        //with a current value of null.**
        var previousValue = asyncLocalValueChangedArgs.PreviousValue;
        var currentValue = asyncLocalValueChangedArgs.CurrentValue;
        var contextChanged = asyncLocalValueChangedArgs.ThreadContextChanged;
    }

    public void SetContext(IRequestContext requestContext)
    {
        _requestContext.Value = requestContext;
    }

    public IRequestContext GetContext()
    {
        return _requestContext.Value;
    } …
Run Code Online (Sandbox Code Playgroud)

c# async-await dnx

13
推荐指数
1
解决办法
1244
查看次数