-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconsole-app-supporting-multiple-frameworks.html
151 lines (146 loc) · 7.11 KB
/
console-app-supporting-multiple-frameworks.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE html>
<html lang="en-US" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<title>Creating a .NET Core Console Application supporting multiple frameworks</title>
<link rel="shortcut icon" href="/wwwroot/favicon.ico" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="language" content="en" />
<meta name="keywords" content="ASP.NET Core,portable class library,.NET Core console application,project.json,project.json file,.NET Core app frameworks" />
<meta name="description" content="Creating a .NET Core Console Application supporting multiple frameworks" />
<meta name="author" content="Adrien Torris" />
<meta name="robots" content="index,follow" />
<meta name="generator" content="No404! 0.1" />
<!--<link rel="alternate" href="https://adrientorris.github.io/aspnet-core/console-app-supporting-multiple-frameworks.html" hreflang="en-en" />-->
<link href="/wwwroot/css/style.css" rel="stylesheet" />
<script defer src="https://use.fontawesome.com/releases/v5.0.7/js/all.js"></script>
</head>
<body>
<div id="main_ctn" class="post_ctn">
<header>
<div id="header-content">
<h2>Blog</h2>
<ul id="social_links">
<li id="twitter_link">
<a href="https://twitter.com/AdrienTorris" target="_Blank" rel="nofollow" title="Adrien Torris sur Twitter">
<i class="fab fa-twitter fa-2x"></i>
</a>
</li>
<li id="github_link" title="Adrien Torris sur GitHub">
<a href="https://github.com/AdrienTorris" target="_Blank" rel="nofollow">
<i class="fab fa-github fa-2x"></i>
</a>
</li>
<li id="so_link">
<a href="https://stackoverflow.com/users/story/4428633" target="_Blank" rel="nofollow" title="Adrien Torris sur StackOverflow">
<i class="fab fa-stack-overflow fa-2x"></i>
</a>
</li>
<li id="linkedin_link">
<a href="https://www.linkedin.com/in/adrientorris/" target="_Blank" rel="nofollow" title="Adrien Torris sur LinkedIn">
<i class="fab fa-linkedin fa-2x"></i>
</a>
</li>
<li id="gplus_link">
<a href="https://plus.google.com/u/0/+AdrienTorris" target="_Blank" rel="nofollow" title="Adrien Torris sur Google Plus">
<i class="fab fa-google-plus-g fa-2x"></i>
</a>
</li>
</ul>
</div>
</header>
<div id="arianne_wrapper">
<ul>
<li><a href="https://adrientorris.github.io/index.html" title="">Home</a></li>
<li>ASP.NET Core</li>
<li class="active"><a href="https://adrientorris.github.io/aspnet-core/console-app-supporting-multiple-frameworks.html" title="Creating a .NET Core Console Application supporting multiple frameworks">Creating a .NET Core Console Application supporting multiple frameworks</a></li>
</ul>
</div>
<div id="post_ctn">
<h1>Creating a .NET Core Console Application supporting multiple frameworks</h1>
<p>Yesterday, I had to implement in a .NET Core Console Application a non-ASP.NET Core portable class library. With .NET Core, this manipulation is easy. Indeed, you have just to add a reference to the correct framework in your appliation's project json file, and all will work fine.</p>
<p>This is my project.json before any modification (you can note this is the default project.json file) :</p>
<div class="pic_wrapper"><img src="/wwwroot/images/dotnet-core/default-net-core-console-app-project-json.png" title="" /></div>
<p>To know which framework you have to target, look in the properties of the portable class library (you can see here I have to target the .NET Framework 4.5) :</p>
<div class="pic_wrapper"><img src="/wwwroot/images/dotnet/dotnet-portable-class-library-properties.png" title="" /></div>
<p>To target the .NET Framework 4.5 in your .NET Core Console Application, you have just to adjust the frameworks you address to in the "frameworks" section in your <span class="thnclwrd">project.json</span> file. After the modification, it will be looks like this :<p/>
<div class="pic_wrapper"><img src="/wwwroot/images/dotnet-core/multiple-frameworks-net-core-console-app-project-json.png" title="" /></div>
<p>You can see here I'm still targeting the .NET Core 1.0.1 framework, but I also reference the .NET 4.5 portable framework, which allows me to reference the two .NET 4.5 portable class libraries I needed to use, libvideo and ClassLibrary2.</p>
<p>I needed here to include the portable 4.5 .NET framework but I also could add any other .NET framework, like .NET Framework 4.5.2 for example.</p>
<pre><code class="csharp">
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
},
"frameworks": {
"net452": {
},
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
}
}
},
"dotnet": {
"imports": "portable-net45",
"dependencies": {
"ClassLibrary2": {
"target": "project"
},
"libvideo": {
"target": "project"
}
}
}
}
}
</code></pre>
<p>With this <span class="thnclwrd">project.json</span>, you can see my console application has the 3 frameworks :</p>
<div class="pic_wrapper"><img src="/wwwroot/images/dotnet-core/multiple-frameworks-net-core-console-app-project-json-refs.png" title="" /></div>
<div id="crdny">
19/11/2016
</div>
<div id="tags_wrapper">
<ul>
<li>dotnet</li>
<li>.NET frameworks</li>
<li>.NET Core</li>
</ul>
</div>
<div id="refs_wrapper">
<ul>
<li><a href="https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json" title="project.json documentation" target="_Blank">project.json documentation</a></li>
</ul>
</div>
</div>
<footer>
</footer>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="/wwwroot/js/Infra.js" type="text/javascript"></script>
<link type="text/css" rel="stylesheet" href="/wwwroot/lib/highlight/styles/vs.css" />
<script type="text/javascript" src="/wwwroot/lib/highlight/highlight.pack.js"></script>
<script type="text/javascript">hljs.initHighlightingOnLoad();</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-85948839-1', 'auto');
ga('send', 'pageview');
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-F924P8Y6HC"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-F924P8Y6HC');
</script>
</body>
</html>