This repository was archived by the owner on Dec 18, 2017. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork 223
This repository was archived by the owner on Dec 18, 2017. It is now read-only.
DNX always chooses the highest framework #2333
Copy link
Copy link
Closed
Description
Scenario: I have a console application that may be ran in both dnx451 and dnx46
When running dnx . run the application is always ran as a dnx46 application. In the code base there has been an explicit decision to always run against the highest discovered framework version:
dnx/src/dnx.clr.managed/DomainManager.cs
Line 97 in 90d2bdb
| // Find the highest DNX desktop version, if any and map it to .NET version |
Why is that? Would it be possible to provide a flag to dnx when executing for the target framework (e.g. dnx . run -fw dnx451)
Trivial example:
/* project.json */ { "userSecretsId": "aspnet5-ConsoleApp1-20150724092501", "version": "1.0.0-*", "description": "ConsoleApp1 Console Application", "authors": [ "kieranties" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "dependencies": { "Microsoft.Framework.Runtime.Abstractions": "1.0.0-beta6-*" }, "commands": { "ConsoleApp1": "ConsoleApp1" }, "frameworks": { "dnx46": { }, "dnx451": { } } }/* Program.cs */ using Microsoft.Framework.Runtime; using System; namespace ConsoleApp1 { public class Program { private readonly IApplicationEnvironment _appEnv; public Program(IApplicationEnvironment appEnv) { _appEnv = appEnv; } public void Main(string[] args) { Console.WriteLine(_appEnv.RuntimeFramework); Console.WriteLine(_appEnv.ApplicationBasePath); #if DNX46 Console.WriteLine(AppContext.BaseDirectory); #endif } } }/* Current result */ > dnx . run DNX,Version=v4.6 C:\dump\x\ClassLibrary1\src\ConsoleApp1 C:\Users\kieranties\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6-12231\bin\