1+ <!DOCTYPE html>
2+ < html >
3+ < head >
4+ < meta charset ="utf-8 ">
5+ < meta http-equiv ="X-UA-Compatible " content ="IE=Edge " />
6+ < meta name ="description " />
7+ < meta name ="keywords " content ="static content generator,static site generator,static site,HTML,web development,.NET,C#,Razor,Markdown,YAML " />
8+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
9+ < link rel ="shortcut icon " href ="/CakeContrib.Guidelines/assets/img/favicon.ico " type ="image/x-icon ">
10+ < link rel ="icon " href ="/CakeContrib.Guidelines/assets/img/favicon.ico " type ="image/x-icon ">
11+ < title > CakeContrib.Guidelines - Target Frameworks</ title >
12+ < link href ="/CakeContrib.Guidelines/assets/css/highlight.css " rel ="stylesheet ">
13+ < link href ="/CakeContrib.Guidelines/assets/css/bootstrap/bootstrap.css " rel ="stylesheet " />
14+ < link href ="/CakeContrib.Guidelines/assets/css/adminlte/AdminLTE.css " rel ="stylesheet " />
15+ < link href ="/CakeContrib.Guidelines/assets/css/theme/theme.css " rel ="stylesheet " />
16+ < link href ="//fonts.googleapis.com/css?family=Roboto+Mono:400,700|Roboto:400,400i,700,700i " rel ="stylesheet ">
17+ < link href ="/CakeContrib.Guidelines/assets/css/font-awesome.min.css " rel ="stylesheet " type ="text/css ">
18+ < link href ="/CakeContrib.Guidelines/assets/css/override.css " rel ="stylesheet " />
19+ < script src ="/CakeContrib.Guidelines/assets/js/jquery-2.2.3.min.js "> </ script >
20+ < script src ="/CakeContrib.Guidelines/assets/js/bootstrap.min.js "> </ script >
21+ < script src ="/CakeContrib.Guidelines/assets/js/app.min.js "> </ script >
22+ < script src ="/CakeContrib.Guidelines/assets/js/highlight.pack.js "> </ script >
23+ < script src ="/CakeContrib.Guidelines/assets/js/jquery.slimscroll.min.js "> </ script >
24+ < script src ="/CakeContrib.Guidelines/assets/js/jquery.sticky-kit.min.js "> </ script >
25+ < script src ="/CakeContrib.Guidelines/assets/js/mermaid.min.js "> </ script >
26+ < script src ="/CakeContrib.Guidelines/assets/js/svg-pan-zoom.min.js "> </ script >
27+ <!--[if lt IE 9]>
28+ <script src="/CakeContrib.Guidelines/assets/js/html5shiv.min.js"></script>
29+ <script src="/CakeContrib.Guidelines/assets/js/respond.min.js"></script>
30+ <![endif]-->
31+
32+
33+ </ head >
34+ < body class ="hold-transition wyam layout-boxed ">
35+ < div class ="top-banner "> </ div >
36+ < div class ="wrapper with-container ">
37+ <!-- Header -->
38+ < header class ="main-header ">
39+
40+ < a href ="/CakeContrib.Guidelines/ " class ="logo ">
41+ < span > CakeContrib.Guidelines</ span >
42+ </ a >
43+
44+ < nav class ="navbar navbar-static-top " role ="navigation ">
45+ <!-- Sidebar toggle button-->
46+ < a href ="# " class ="sidebar-toggle visible-xs-block " data-toggle ="offcanvas " role ="button ">
47+ < span class ="sr-only "> Toggle side menu</ span >
48+ < i class ="fa fa-chevron-circle-right "> </ i >
49+ </ a >
50+
51+ < div class ="navbar-header ">
52+ < button type ="button " class ="navbar-toggle collapsed " data-toggle ="collapse " data-target ="#navbar-collapse ">
53+ < span class ="sr-only "> Toggle side menu</ span >
54+ < i class ="fa fa-chevron-circle-down "> </ i >
55+ </ button >
56+ </ div >
57+
58+ <!-- Collect the nav links, forms, and other content for toggling -->
59+ < div class ="collapse navbar-collapse pull-left " id ="navbar-collapse ">
60+ < ul class ="nav navbar-nav ">
61+ < li class ="active "> < a href ="/CakeContrib.Guidelines/guidelines "> Guidelines</ a > </ li >
62+ < li > < a href ="/CakeContrib.Guidelines/rules "> Rules</ a > </ li >
63+
64+ </ ul >
65+ </ div >
66+ <!-- /.navbar-collapse -->
67+
68+ <!-- Navbar Right Menu -->
69+ </ nav >
70+ </ header >
71+
72+ <!-- Left side column. contains the logo and sidebar -->
73+ < aside class ="main-sidebar ">
74+ < section class ="infobar " data-spy ="affix " data-offset-top ="60 " data-offset-bottom ="200 ">
75+
76+ < div > < p > < a href ="https://github.com/cake-contrib/CakeContrib.Guidelines/tree/develop/docs/input/guidelines/TargetFramework.md "> < i class ="fa fa-pencil-square " aria-hidden ="true "> </ i > Edit Content</ a > </ p > </ div >
77+ < div id ="infobar-headings "> </ div >
78+
79+ </ section >
80+ < section class ="sidebar ">
81+
82+
83+
84+ < ul class ="sidebar-menu ">
85+
86+
87+ < li > < a href ="/CakeContrib.Guidelines/guidelines/CakeContribIcon "> CakeContrib-Icon</ a > </ li >
88+ < li > < a href ="/CakeContrib.Guidelines/guidelines/PrivateAssets "> PrivateAssets in references</ a > </ li >
89+ < li > < a href ="/CakeContrib.Guidelines/guidelines/RecommendedReferences "> Recommended References</ a > </ li >
90+ < li class ="selected "> < a href ="/CakeContrib.Guidelines/guidelines/TargetFramework "> Target Frameworks</ a > </ li >
91+ < li class ="treeview ">
92+ < a href ="/CakeContrib.Guidelines/guidelines/examples "> Examples</ a > < a href ="# " class ="expand "> </ a >
93+ < ul class ="treeview-menu ">
94+
95+ < li > < a href ="/CakeContrib.Guidelines/guidelines/examples/Editorconfig "> Example for .editorconfig</ a > </ li >
96+ < li > < a href ="/CakeContrib.Guidelines/guidelines/examples/StyleCopJson "> Example for stylecop.json</ a > </ li >
97+
98+ </ ul >
99+ </ li >
100+
101+ </ ul >
102+
103+ </ section >
104+ </ aside >
105+
106+ <!-- Content Wrapper. Contains page content -->
107+ < div class ="content-wrapper ">
108+
109+
110+
111+
112+ < section class ="content-header ">
113+ < h1 > Target Frameworks</ h1 >
114+ </ section >
115+ < section class ="content ">
116+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
117+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
118+ < h2 id ="table-of-contents "> Table of Contents</ h2 >
119+ < ul >
120+ < li > < a href ="#goals "> Goals</ a >
121+ < ul >
122+ < li > < a href ="#required--suggested-versions "> Required / Suggested versions</ a > </ li >
123+ </ ul >
124+ </ li >
125+ < li > < a href ="#related-rules "> Related rules</ a > </ li >
126+ < li > < a href ="#usage "> Usage</ a > </ li >
127+ < li > < a href ="#settings "> Settings</ a >
128+ < ul >
129+ < li > < a href ="#opt-out "> Opt-Out</ a > </ li >
130+ </ ul >
131+ </ li >
132+ </ ul >
133+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
134+ < h2 id ="goals "> Goals</ h2 >
135+ < p > As .NET Framework < 4.7.2 has issues with running .NET Standard assemblies, and Cake itself can run on .NET Framework 4.6.1 it is suggested to multi-target addins to < code > netstandard2.0</ code > and < code > net461</ code > to have the maximum compatibility.</ p >
136+ < h3 id ="required-suggested-versions "> Required / Suggested versions</ h3 >
137+ < p > Depending on the referenced < code > Cake.Core</ code > -version different target versions are required and/or suggested.
138+ Missing a required target version will raise < a href ="../rules/ccg0007 "> CCG0007</ a > as an error
139+ while missing a suggested target version will raise < a href ="../rules/ccg0007 "> CCG0007</ a > as a warning.</ p >
140+ < ul >
141+ < li > Cake.Core <= 0.33.0
142+ < ul >
143+ < li > Required: < code > netstandard2.0</ code > </ li >
144+ < li > Suggested: < code > net461</ code >
145+ < ul >
146+ < li > alternative: < code > net46</ code > </ li >
147+ </ ul >
148+ </ li >
149+ </ ul >
150+ </ li >
151+ </ ul >
152+ < h2 id ="related-rules "> Related rules</ h2 >
153+ < ul >
154+ < li > < a href ="../rules/ccg0007 "> CCG0007</ a > </ li >
155+ </ ul >
156+ < h2 id ="usage "> Usage</ h2 >
157+ < p > Using this package automatically enables this guideline.</ p >
158+ < h2 id ="settings "> Settings</ h2 >
159+ < h3 id ="opt-out "> Opt-Out</ h3 >
160+ < p > It it possible to opt-out of the check for target framework using the following setting:</ p >
161+ < p > (< em > Keep in mind, though that it is not recommended to opt-out of this feature</ em > )</ p >
162+ < pre > < code class ="language-xml "> <ItemGroup>
163+ <CakeContribGuidelinesOmitTargetFramework Include="netstandard2.0" />
164+ <CakeContribGuidelinesOmitTargetFramework Include="net461" />
165+ </ItemGroup>
166+ </ code > </ pre >
167+
168+ </ section >
169+
170+ </ div >
171+
172+ <!-- Footer -->
173+ < footer class ="main-footer ">
174+ </ footer >
175+
176+ </ div >
177+ < div class ="wrapper bottom-wrapper ">
178+ < footer class ="bottom-footer ">
179+ < p class ="text-muted ">
180+ Copyright © < a href ="http://github.com/cake-contrib " target ="_blank "> Cake Contributions</ a > and < a href ="https://github.com/cake-contrib/CakeContrib.Guidelines/graphs/contributors " target ="_blank "> contributors</ a > .
181+ < br />
182+ Website generated by < a href ="http://wyam.io " target ="_blank "> Wyam</ a >
183+ </ p >
184+
185+ </ footer >
186+ </ div >
187+ < a href ="javascript: " id ="return-to-top "> < i class ="fa fa-chevron-up "> </ i > </ a >
188+ < a class ="github-button " href ="https://github.com/cake-contrib/CakeContrib.Guidelines " target ="_blank ">
189+ < i class ="fa fa-github "> </ i >
190+ GitHub
191+ </ a >
192+ < script >
193+ ( ( window . gitter = { } ) . chat = { } ) . options = {
194+ room : 'cake-contrib/Lobby'
195+ } ;
196+ </ script >
197+ < script src ="https://sidecar.gitter.im/dist/sidecar.v1.js " async defer > </ script >
198+
199+ < script type ="text/javascript " src ="/CakeContrib.Guidelines/assets/js/anchor.min.js "> </ script >
200+ < script type ="text/javascript " src ="/CakeContrib.Guidelines/assets/js/clipboard.min.js "> </ script >
201+ < script type ="text/javascript ">
202+ anchors . options . placement = 'left' ;
203+ anchors . add ( '#content h1:not(.no-anchor), #content h2:not(.no-anchor), #content h3:not(.no-anchor), #content h4:not(.no-anchor)' ) ;
204+
205+ var snippets = document . querySelectorAll ( "pre > code" ) ;
206+ [ ] . forEach . call ( snippets , function ( snippet ) {
207+ snippet . insertAdjacentHTML ( "beforebegin" , "<button class='btn-copy' data-clipboard-snippet><img class='clippy' width=13 src='/CakeContrib.Guidelines/assets/images/clippy.svg' alt='Copy to clipboard'></button>" ) ;
208+ } ) ;
209+ var clipboardSnippets = new Clipboard ( '[data-clipboard-snippet]' , {
210+ target : function ( trigger ) {
211+ return trigger . nextElementSibling ;
212+ }
213+ } ) ;
214+ clipboardSnippets . on ( 'success' , function ( e ) {
215+ e . clearSelection ( ) ;
216+ showTooltip ( e . trigger , "Copied!" ) ;
217+ } ) ;
218+ clipboardSnippets . on ( 'error' , function ( e ) {
219+ showTooltip ( e . trigger , fallbackMessage ( e . action ) ) ;
220+ } ) ;
221+ var btns = document . querySelectorAll ( '.btn-copy' ) ;
222+ for ( var i = 0 ; i < btns . length ; i ++ ) {
223+ btns [ i ] . addEventListener ( 'mouseleave' , function ( e ) {
224+ e . currentTarget . setAttribute ( 'class' , 'btn-copy' ) ;
225+ e . currentTarget . removeAttribute ( 'aria-label' ) ;
226+ } ) ;
227+ }
228+ function showTooltip ( elem , msg ) {
229+ elem . setAttribute ( 'class' , 'btn-copy tooltipped tooltipped-s' ) ;
230+ elem . setAttribute ( 'aria-label' , msg ) ;
231+ }
232+ function fallbackMessage ( action ) {
233+ var actionMsg = '' ;
234+ var actionKey = ( action === 'cut' ? 'X' : 'C' ) ;
235+ if ( / i P h o n e | i P a d / i. test ( navigator . userAgent ) ) {
236+ actionMsg = 'No support :(' ;
237+ } else if ( / M a c / i. test ( navigator . userAgent ) ) {
238+ actionMsg = 'Press ⌘-' + actionKey + ' to ' + action ;
239+ } else {
240+ actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action ;
241+ }
242+ return actionMsg ;
243+ }
244+ </ script >
245+ < script >
246+ // Close the sidebar if we select an anchor link
247+ $ ( ".main-sidebar a[href^='#']:not('.expand')" ) . click ( function ( ) {
248+ $ ( document . body ) . removeClass ( 'sidebar-open' ) ;
249+ } ) ;
250+
251+ $ ( document ) . ready ( function ( ) {
252+ mermaid . initialize (
253+ {
254+ flowchart :
255+ {
256+ useMaxWidth : false
257+ } ,
258+ startOnLoad : false ,
259+ cloneCssStyles : false
260+ } ) ;
261+ mermaid . init ( undefined , ".mermaid" ) ;
262+
263+ // Remove the max-width setting that Mermaid sets
264+ var mermaidSvg = $ ( '.mermaid svg' ) ;
265+ mermaidSvg . addClass ( 'img-responsive' ) ;
266+ mermaidSvg . css ( 'max-width' , '' ) ;
267+
268+ // Make it scrollable
269+ var target = document . querySelector ( ".mermaid svg" ) ;
270+ if ( target !== null )
271+ {
272+ var panZoom = window . panZoom = svgPanZoom ( target , {
273+ zoomEnabled : true ,
274+ controlIconsEnabled : true ,
275+ fit : true ,
276+ center : true ,
277+ maxZoom : 20 ,
278+ zoomScaleSensitivity : 0.6
279+ } ) ;
280+
281+ // Do the reset once right away to fit the diagram
282+ panZoom . resize ( ) ;
283+ panZoom . fit ( ) ;
284+ panZoom . center ( ) ;
285+
286+ $ ( window ) . resize ( function ( ) {
287+ panZoom . resize ( ) ;
288+ panZoom . fit ( ) ;
289+ panZoom . center ( ) ;
290+ } ) ;
291+ }
292+
293+ $ ( 'pre code' ) . each ( function ( i , block ) {
294+ hljs . highlightBlock ( block ) ;
295+ } ) ;
296+ } ) ;
297+
298+ hljs . initHighlightingOnLoad ( ) ;
299+
300+ // Back to top
301+ $ ( window ) . scroll ( function ( ) {
302+ if ( $ ( this ) . scrollTop ( ) >= 200 ) { // If page is scrolled more than 50px
303+ $ ( '#return-to-top' ) . fadeIn ( 1000 ) ; // Fade in the arrow
304+ } else {
305+ $ ( '#return-to-top' ) . fadeOut ( 1000 ) ; // Else fade out the arrow
306+ }
307+ } ) ;
308+ $ ( '#return-to-top' ) . click ( function ( ) { // When arrow is clicked
309+ $ ( 'body,html' ) . animate ( {
310+ scrollTop : 0 // Scroll to top of body
311+ } , 500 ) ;
312+ } ) ;
313+ </ script >
314+ </ body >
315+ </ html >
0 commit comments