<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Marko Apfel</title>
        <link>http://geekswithblogs.net/mapfel/Default.aspx</link>
        <description>C#, Architecture, QA, Coach, GIS, ArcGIS, ArcObjects</description>
        <language>de-DE</language>
        <copyright>Marko Apfel</copyright>
        <managingEditor>Marko.Apfel@gmx.net</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Marko Apfel</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/mapfel/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Simian counts errors in Jenkins dashboard but shows in details &amp;ldquo;No violation found&amp;rdquo;</title>
            <category>Clean Code</category>
            <category>Code Analysis</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/12/08/147982.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;Jenkins dashboard shows following simian analysis:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://sites.google.com/site/markoapfel/Simian.NoViolationFound.01.png" /&gt;&lt;/p&gt;  &lt;p&gt;But after clicking one item I get:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://sites.google.com/site/markoapfel/Simian.NoViolationFound.02.png" /&gt;&lt;/p&gt;  &lt;h1&gt;Solution&lt;/h1&gt;  &lt;p&gt;My simian call was:&lt;/p&gt;  &lt;pre class="brush: bash;"&gt;.\tools\Simian\bin\simian-2.3.33.exe ./src/**/*.cs -formatter=xml:.\bin\Simian.Result.xml -threshold=10 -excludes="**/*.Designer.cs" -excludes="**/*Fixture*.cs" -excludes="**/*.g.cs" -excludes="**/*.xaml.cs" -failOnDuplication-&lt;/pre&gt;

&lt;p&gt;but the folder prefix (‘./’) for current folder in front of (‘src/**/*.cs’)  is wrong.&lt;/p&gt;

&lt;p&gt;Deleting the unnecessary chars lets the system work:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://sites.google.com/site/markoapfel/Simian.NoViolationFound.03.png" /&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147982.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/12/08/147982.aspx</guid>
            <pubDate>Thu, 08 Dec 2011 15:46:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147982.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/12/08/147982.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147982.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147982.aspx</trackback:ping>
        </item>
        <item>
            <title>Installing of SDKs, Visual Studio and additional toolsets on build machines</title>
            <link>http://geekswithblogs.net/mapfel/archive/2011/12/05/147942.aspx</link>
            <description>&lt;p&gt;Last week I get the information directly from Microsoft, that at build machines SDKs must be installed to guarantee that MSBuild works well in some circumstances.&lt;/p&gt;  &lt;p&gt;We have the problem, that a self-containing build should include all necessary build artifacts – particularly Silverlight stuff. I tried to encapsulate the special steps in own targets and a build was finally possible (see my former posts). But at local machines without installed Silverlight stuff it gives problems for problems. Because reason of time finally I decide to go the Microsoft way – they break my volition &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/SDKs-Visual-Studio_C828/wlEmoticon-winkingsmile_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;Only one thing I left in my DevTree: the WebApplication target. This stuff is not included in the Silverlight SDK – no idea where it comes from. To avoid the build breaks on our continuous integration server I reference this target in my DevTree self.&lt;/p&gt;  &lt;p&gt;These lines:&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;  &amp;lt;ImportGroup Condition=" '$(Configuration)' == 'Debug' "&amp;gt;
    &amp;lt;Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /&amp;gt;
  &amp;lt;/ImportGroup&amp;gt;
  &amp;lt;ImportGroup Condition=" '$(Configuration)' != 'Debug' "&amp;gt;
    &amp;lt;!-- leider nicht von Visual Studio akzeptiert --&amp;gt;
    &amp;lt;Import Project="..\..\..\tools\WebApplications\Microsoft.WebApplication.targets" /&amp;gt;
    &amp;lt;!-- --&amp;gt;
  &amp;lt;/ImportGroup&amp;gt;&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147942.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/12/05/147942.aspx</guid>
            <pubDate>Mon, 05 Dec 2011 14:07:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147942.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/12/05/147942.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147942.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147942.aspx</trackback:ping>
        </item>
        <item>
            <title>Interop effects by resolving and instantiating types with ArcObjects</title>
            <category>ArcObjects</category>
            <category>Interop</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/25/147839.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;this code does not work&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;Type t = typeof(ESRI.ArcGIS.Framework.AppRefClass);
System.Object obj = Activator.CreateInstance(t);&lt;/pre&gt;

&lt;p&gt;but yet this code &lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;Type t = Type.GetTypeFromCLSID(typeof(ESRI.ArcGIS.Framework.AppRefClass).GUID);
System.Object obj = Activator.CreateInstance(t);&lt;/pre&gt;

&lt;h1&gt;Reason&lt;/h1&gt;

&lt;p&gt;In the first variant the runtime tries to cast to AppRefClass . This is not possible.&lt;/p&gt;

&lt;p&gt;And in the second one, the runtime does not knows anything about AppRefClass. So it leave it as IUnknown.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;(originally communicated by my co-worker Ralf)&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147839.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/25/147839.aspx</guid>
            <pubDate>Fri, 25 Nov 2011 13:10:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147839.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/25/147839.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147839.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147839.aspx</trackback:ping>
        </item>
        <item>
            <title>@Microsoft: please provide universal and professional concepts</title>
            <category>Tools</category>
            <category>Clean Code</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/20/147763.aspx</link>
            <description>&lt;p&gt;Why such constructs are included in the csproj-Files?&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;&amp;lt;CodeAnalysisRuleSetDirectories&amp;gt;;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets&amp;lt;/CodeAnalysisRuleSetDirectories&amp;gt;
&amp;lt;CodeAnalysisRuleDirectories&amp;gt;;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules&amp;lt;/CodeAnalysisRuleDirectories&amp;gt;&lt;/pre&gt;

&lt;p&gt;So it every projects needs some manual steps to clean the project file so the solution could be build on a continuous integration server. That annoying!&lt;/p&gt;

&lt;p&gt;And also in a Visual Studio mixed editions team that’s too specific for the ultimate edition.&lt;/p&gt;

&lt;p&gt;As good as Visual Studio in most cases is, sometimes it is really far away from professional coding fundamentals and best practices. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Microsoft-please-provide-generic_AEF7/wlEmoticon-sadsmile_2.png" /&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147763.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/20/147763.aspx</guid>
            <pubDate>Sun, 20 Nov 2011 10:35:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147763.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/20/147763.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147763.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147763.aspx</trackback:ping>
        </item>
        <item>
            <title>Toolset agnostic build server and Silverlight projects</title>
            <category>Code Analysis</category>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/10/147650.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;Normally I try to have my continuous integration as most a possible toolset free to ensure that no local stuff could have an impact to my build.&lt;/p&gt;  &lt;p&gt;My Silverlight app references a special compile target in a folder outside my developer tree:&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;&amp;lt;Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /&amp;gt;&lt;/pre&gt;

&lt;p&gt;So I copied the stuff from this folder to a local one and changed the call to this target in my csproj:&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;Import Project="..\..\..\tools\WebApplications\Microsoft.WebApplication.targets" /&amp;gt;&lt;/pre&gt;

&lt;p&gt;And now Visual Studio Conversion Wizard welcomes my with this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Toolset-agnostic-build-server-and-Silver_148BA/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Toolset-agnostic-build-server-and-Silver_148BA/image_thumb_1.png" width="244" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;Solution&lt;/h1&gt;

&lt;p&gt;Regardless of which line I write – this conversion comes back again and again, if the line has another form than&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /&amp;gt;&lt;/pre&gt;

&lt;p&gt;So it seems that there is no simple way to change this behaviour. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Toolset-agnostic-build-server-and-Silver_148BA/wlEmoticon-sadsmile_2.png" /&gt;&lt;/p&gt;

&lt;h1&gt;Workaraound&lt;/h1&gt;

&lt;p&gt;I must accept, that this line must be in the csproj and to run the build the toolset must be copied to the build server at the correct location.&lt;/p&gt;

&lt;p&gt;So go to your development machine where Visual Studio is installed and copy the folder “C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications” to your build server at the equivalent location.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Xmas wishes to Microsoft: &lt;/h2&gt;

&lt;p&gt;Please provide technologies to let us developers bundle all needed stuff for a project in one developer tree. It should be possible that one checkout starts us up! No additional installations regardless whether it is a developing machine or dedicated build or continuous integration server.&lt;/p&gt;

&lt;p&gt;Silverlight is only one example, code analysis configurations could also be terrible and much more …&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147650.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/10/147650.aspx</guid>
            <pubDate>Thu, 10 Nov 2011 21:42:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147650.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/10/147650.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147650.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147650.aspx</trackback:ping>
        </item>
        <item>
            <title>Setup license stuff for PostSharp 2.1</title>
            <category>Tools</category>
            <category>Clean Code</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/08/147621.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;Normally PostSharp runs fine on unattended build servers. So on our global Jenkins continuous integration server PostSharp does the job.&lt;/p&gt;  &lt;p&gt;But on my local TeamCity continuous integration server I got the following error:&lt;/p&gt;  &lt;pre class="brush: text;"&gt;POSTSHARP error PS0127: The aspect 'EsriDE.Commons.Logging.Aop.PostSharp.LoggingAspectAttribute' uses non-licensed features (Basic Features). Please visit http://www.sharpcrafters.com/ to acquire a license of PostSharp. 
POSTSHARP error PS0154: Information regarding the previous message: the installed user license is: "". 
POSTSHARP error PS0060: The processing of module "EsriDE.Maintenance.LoginExtension.dll" was not successful. &lt;/pre&gt;

&lt;p&gt;Okay – so install the license via a target in the developer tree. Like described in&lt;/p&gt;

&lt;p&gt;&lt;a href="http://doc.sharpcrafters.com/postsharp-2.0/Default.aspx##PostSharp-2.0.chm/html/541CB3E3-9C3B-4E6F-B52F-FA7DC01F6EF9.htm"&gt;Configuring PostSharp - Creating a file PostSharp.Custom.targets&lt;/a&gt; or &lt;a href="http://doc.sharpcrafters.com/postsharp-2.0/##PostSharp-2.0.chm/html/10023a1a-c4c1-4d1a-b307-f49a2e39cdb0.htm"&gt;Deploying License Keys for a Team&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This throws a new error:&lt;/p&gt;

&lt;pre class="brush: text;"&gt;C:\Program Files (x86)\TeamCity\buildAgent\work\bf9b0bb7766c4536\lib\Nuget-Packages\PostSharp.2.1.5.1\tools\PostSharp.targets(173, 5): Property 'PostSharpLicenseKey' is deprecated.&lt;/pre&gt;

&lt;p&gt;and indeed: this option was discontinued&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sharpcrafters.com/blog/post/Announcing-PostSharp-21-CTP-2.aspx"&gt;Announcing PostSharp 2.1 CTP 2&lt;/a&gt; (see section “License Management”)&lt;/p&gt;

&lt;h1&gt;Solution&lt;/h1&gt;

&lt;p&gt;Note to self: RTFM &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Setup-license-stuff-for-PostSharp-2.1_12328/wlEmoticon-winkingsmile_2.png" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://doc.sharpcrafters.com/postsharp-2.1/Default.aspx##PostSharp-2.1.chm/html/41129237-a5d4-4acf-aef4-c46759ccfb4b.htm"&gt;Deploying PostSharp into a Source Repository - Adding PostSharp to your project using PostSharp HQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Activate the license you got with the one of the first mails from SharpCrafters and everything works like expected.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147621.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/08/147621.aspx</guid>
            <pubDate>Tue, 08 Nov 2011 19:03:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147621.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/08/147621.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147621.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147621.aspx</trackback:ping>
        </item>
        <item>
            <title>MSB4067: The element &amp;lt;ImportGroup&amp;gt; beneath element &amp;lt;Project&amp;gt; is unrecognized.</title>
            <category>Code Analysis</category>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/08/147616.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;Our global Jenkins continuous integration server throws this error during compile step. My local TeamCity continuous integration server runs fine. What is the difference.&lt;/p&gt;  &lt;h1&gt;Background&lt;/h1&gt;  &lt;p&gt;I integrate some static code analysis steps via MSBuild-targets in the csproj files.&lt;/p&gt;  &lt;p&gt;To allow a fast developing without a code analysis for ever compiling I bound these targets only to RELEASE-configuration.&lt;/p&gt;  &lt;p&gt;With the MSBuild element &amp;lt;ImportGroup&amp;gt; only one condition must be specified. So my construct was:&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;&amp;lt;ImportGroup Condition="'$(Configuration)'=='Release'"&amp;gt;
    &amp;lt;Import Project="..\..\..\tools\Fxcop\EsriDE.FxCop.targets" /&amp;gt;
    &amp;lt;Import Project="..\..\..\tools\StyleCop\StyleCop.targets" /&amp;gt;
&amp;lt;/ImportGroup&amp;gt;&lt;/pre&gt;

&lt;p&gt;That works fine in Visual Studio and TeamCity.&lt;/p&gt;

&lt;p&gt;But Jenkins allows to specify the MSBuild version:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/MSB4067-The-element-beneath-element-is-_AD2A/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/MSB4067-The-element-beneath-element-is-_AD2A/image_thumb.png" width="412" height="137" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because my target framework is .NET 3.5 I decide to choose the entry .NETv3.5-x86.&lt;/p&gt;

&lt;p&gt;And this was the failure. The MSBuild element &amp;lt;ImportGroup&amp;gt; is new in .NET 4.0&lt;/p&gt;

&lt;h1&gt;Solution&lt;/h1&gt;

&lt;p&gt;With the following options everything runs fine:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/MSB4067-The-element-beneath-element-is-_AD2A/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/MSB4067-The-element-beneath-element-is-_AD2A/image_thumb_2.png" width="415" height="131" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;BTW: Maybe that some combinations of MSBuild version and toolsversion switch could also fix this error.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147616.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/08/147616.aspx</guid>
            <pubDate>Tue, 08 Nov 2011 10:32:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147616.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/08/147616.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147616.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147616.aspx</trackback:ping>
        </item>
        <item>
            <title>Running StyleCop without an installation to empower continuous integration</title>
            <category>Code Analysis</category>
            <category>Clean Code</category>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/07/147606.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;A continuous integration server should only have a minimal toolset installed. This ensures that no unwanted libraries could affect the build and other steps.&lt;/p&gt;  &lt;p&gt;Clearly that with this slogan also StyleCop should not be installed to the CI server. But we wanna have this analysis as an part of the whole build.&lt;/p&gt;  &lt;h1&gt;Solution&lt;/h1&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;First at all we need the necessary files from StyleCop (the core assemblies and the target).&lt;/p&gt;  &lt;p&gt;The easiest way is to download the MSI of StyleCop, install the software and copy the relevant artifacts to a tools folder in our developer tree.&lt;/p&gt;  &lt;p&gt;For a default installation you will find the assemblies under the program files folder and the target file under the MSBuild folder. You could copy all together to one folder.&lt;/p&gt;  &lt;p&gt;Now deinstall the software to ensure, that your project local environment works (no impact from installed stuff).&lt;/p&gt;  &lt;h2&gt;Configure your environment&lt;/h2&gt;  &lt;p&gt;To run StyleCop from the target file it must be edited. Change the third line&lt;/p&gt;  &lt;p&gt;from&lt;/p&gt;  &lt;pre class="brush: xml;"&gt;&amp;lt;UsingTask AssemblyFile="$(ProgramFiles)\StyleCop 4.6\StyleCop.dll" TaskName="StyleCopTask"/&amp;gt;&lt;/pre&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;UsingTask AssemblyFile="StyleCop.dll" TaskName="StyleCopTask"/&amp;gt;&lt;/pre&gt;

&lt;h2&gt;Configure your csproj files&lt;/h2&gt;

&lt;p&gt;In the last step we bore up all csproj files of our solution. Next to the c#-compile target we call the StyleCop target:&lt;/p&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /&amp;gt;
&amp;lt;Import Project="..\..\..\tools\StyleCop\StyleCop.targets" /&amp;gt;&lt;/pre&gt;

&lt;p&gt;Take care to adjust the correct relativ folder from csproj- to target- file.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147606.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/07/147606.aspx</guid>
            <pubDate>Mon, 07 Nov 2011 21:32:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147606.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/07/147606.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147606.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147606.aspx</trackback:ping>
        </item>
        <item>
            <title>xUnit runner eats system diagnostic output</title>
            <category>C#</category>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/07/147604.aspx</link>
            <description>&lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;When using xUnit and constructs like Debug.WriteLine the DbgView-tool does not show the written output anymore.&lt;/p&gt;  &lt;h1&gt;Solution&lt;/h1&gt;  &lt;p&gt;Add a new Listener – for example:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;Debug.Listeners.Add(new DefaultTraceListener());&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147604.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/07/147604.aspx</guid>
            <pubDate>Mon, 07 Nov 2011 12:28:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147604.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/07/147604.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147604.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147604.aspx</trackback:ping>
        </item>
        <item>
            <title>NuGet: Update to an older version of a package</title>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/04/147560.aspx</link>
            <description>&lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;I must go back to an older package version (from 1.1.0.0 to 1.0.0.0) but the Package Manager Console does not allow this.&lt;/p&gt;  &lt;p&gt;With the command&lt;/p&gt;  &lt;pre class="brush: bash;"&gt;Update-Package EsriDE.Commons.System.Utils -Version 1.0.0.0&lt;/pre&gt;

&lt;p&gt;I got the error:&lt;/p&gt;

&lt;pre class="brush: bash;"&gt;Update-Package : Already referencing a newer version of 'EsriDE.Commons.System.Utils'.&lt;/pre&gt;

&lt;h1&gt;Solution&lt;/h1&gt;

&lt;p&gt;Don’t worry. You could uninstall the package&lt;/p&gt;

&lt;pre class="brush: bash;"&gt;Uninstall-Package EsriDE.Commons.System.Utils -Version 1.1.0.0&lt;/pre&gt;

&lt;p&gt;and install the older one instead.&lt;/p&gt;

&lt;pre class="brush: bash;"&gt;Install-Package EsriDE.Commons.System.Utils -Version 1.0.0.0&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147560.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/04/147560.aspx</guid>
            <pubDate>Fri, 04 Nov 2011 09:52:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147560.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/04/147560.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147560.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147560.aspx</trackback:ping>
        </item>
        <item>
            <title>Review SmartAssembly from Red Gate</title>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/11/01/147515.aspx</link>
            <description>&lt;p&gt;As an GWB-influencer I had the chance to review SmartAssembly.&lt;/p&gt;  &lt;p&gt;Because obfuscation is an important part in protecting intellectual property this review chance was a good start for this. The first few clicks show that not only obfuscation could be made with SmartAssembly but also some other very interesting things.&lt;/p&gt;  &lt;p&gt;The complete review could be read here: &lt;a href="http://sites.google.com/site/markoapfel/GWB-ReviewSmartAssembly.pdf"&gt;GWB-Review SmartAssembly&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147515.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/11/01/147515.aspx</guid>
            <pubDate>Tue, 01 Nov 2011 13:34:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147515.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/11/01/147515.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147515.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147515.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;quot;Failure has occurred while loading a type.&amp;quot;</title>
            <category>ArcObjects</category>
            <category>C#</category>
            <category>Interop</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/10/28/147478.aspx</link>
            <description>&lt;h1&gt;Motivation&lt;/h1&gt;  &lt;p&gt;During programming suddenly this error (“Failure has occurred while loading a type”) was thrown by accessing a artifact of a referenced library.&lt;/p&gt;  &lt;p&gt;In such cases I take the assembly fusion logger fuslogvw to search for problems of loading assemblies. Sometimes an old version from a not expected folder is binded. But all bindings were correct.&lt;/p&gt;  &lt;h1&gt;Problem&lt;/h1&gt;  &lt;p&gt;After several hour I got the right hint. Because the assembly is a COM+ one, there are some registration things in die background – and I don’t mean the regsrv-stuff!&lt;/p&gt;  &lt;p&gt;And there was one step which access the GUID of the type under “HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4E83E98D-0D8F-4949-8436-0F001CFE5039}”.&lt;/p&gt;  &lt;h1&gt;Reason for the problem&lt;/h1&gt;  &lt;p&gt;Than I remembered, that I started developing of the COM+ library as a normal user – and during runtime I got two errors regarding the accessing of the following keys:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;System.EnterpriseServices.RegistrationException : You must have administrative credentials to perform this task. Contact your system administrator for assistance.     &lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;----&amp;gt; System.EnterpriseServices.RegistrationException : Failed to register assembly 'ErpUnlinkedObjectsRestSoe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0123456789abcdef'.     &lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;----&amp;gt; System.UnauthorizedAccessException : Access to the registry key 'HKEY_CLASSES_ROOT\ErpUnlinkedObjectsRestSoe' is denied.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I created this key with administrative credentials:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_thumb.png" width="244" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and set the permissions for normal users:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_thumb_1.png" width="244" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/mapfel/Windows-Live-Writer/Failure-has-occurred-while-loading-a-ty_BA45/image_thumb_3.png" width="192" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Because after each run the key is deleted I decided to set a deny for delete. So the key stays over the following runs.&lt;/p&gt;  &lt;p&gt;The following error&lt;/p&gt;  &lt;p&gt;System.EnterpriseServices.RegistrationException : You must have administrative credentials to perform this task. Contact your system administrator for assistance.   &lt;br /&gt;----&amp;gt; System.EnterpriseServices.RegistrationException : Failed to register assembly 'ErpUnlinkedObjectsRestSoe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0123456789abcdef'.    &lt;br /&gt;----&amp;gt; System.UnauthorizedAccessException : Access to the registry key 'HKEY_CLASSES_ROOT\CLSID\{4E83E98D-0D8F-4949-8436-0F001CFE5039}' is denied.&lt;/p&gt;  &lt;p&gt;I resolved like above.&lt;/p&gt;  &lt;p&gt;And these keys were now the basic evil.&lt;/p&gt;  &lt;h1&gt;Solution&lt;/h1&gt;  &lt;p&gt;I deleted the key and started my Visual Studio with administrative credentials to run the code.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147478.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/10/28/147478.aspx</guid>
            <pubDate>Fri, 28 Oct 2011 10:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147478.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/10/28/147478.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147478.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147478.aspx</trackback:ping>
        </item>
        <item>
            <title>InternalsVisibleTo, PublicKey and PublicKeyToken</title>
            <category>C#</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/10/27/147472.aspx</link>
            <description>&lt;h1&gt;Intro&lt;/h1&gt;  &lt;p&gt;If you want to test the internals of a productive assembly you must mark the assembly with the InternalsVisibleTo-attribute. This attribute has only one constructor which needs the name of the testing assembly.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So this looks like:&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;[assembly: InternalsVisibleTo("UnlinkedObjectsRestSoe.Tests")]&lt;/pre&gt;

&lt;p&gt;Visual Studio and 3rd party plugins uses the string to mark referencing artifacts with permitted/denied hints.&lt;/p&gt;

&lt;h1&gt;Strong named assemblies&lt;/h1&gt;

&lt;p&gt;If the productive assembly is strong named you get with this (simple) style an error:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New"&gt;Friend assembly reference 'UnlinkedObjectsRestSoe.Tests' is invalid. Strong-name signed assemblies must specify a public key in their InternalsVisibleTo declarations.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Okay – this makes sense, because a strong named assembly could only reference strong name assemblies. So we must sign the testing project too.&lt;/p&gt;

&lt;p&gt;And we must set some additional information in the code.&lt;/p&gt;

&lt;h2&gt;Public Key Token&lt;/h2&gt;

&lt;p&gt;In some articles is described, that you could use the public key token for the additional information. This is a wrong information! But let us go the steps I gone for a better understanding.&lt;/p&gt;

&lt;p&gt;You could extract the public key token of your keyfile over two steps&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;extract the public key from the keyfile with 
    &lt;br /&gt;&lt;font face="Courier New"&gt;sn –p &amp;lt;keyfile.snk&amp;gt; &amp;lt;keyfile.snk.PublicKey&amp;gt;&lt;/font&gt; &lt;/li&gt;

  &lt;li&gt;show the public key token with 
    &lt;br /&gt;&lt;font face="Courier New"&gt;sn -t &amp;lt;keyfile.snk.PublicKey&amp;gt;&lt;/font&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now this public key token is set:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;[assembly: InternalsVisibleTo("UnlinkedObjectsRestSoe.Tests, PublicKeyToken&amp;lt;"123456789abscdef"&amp;gt;)]&lt;/pre&gt;

&lt;p&gt;The public key token must be wrapped in angle brackets, otherwise the compiler error is the same.&lt;/p&gt;

&lt;p&gt;Furthermore for Visual Studio is only the name of the referencing assembly interesting – after the comma you could write nonsense.&lt;/p&gt;

&lt;p&gt;Till here all works fine.&lt;/p&gt;

&lt;p&gt;The problem came up when you reference internals from the productive assembly in your testing assembly.&lt;/p&gt;

&lt;p&gt;The compiler throws something like:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New"&gt;'UnlinkedObjectsRestSoe.Artifact' does not contain a definition for 'Foo' and no extension method 'Foo' accepting a first argument of type 'UnlinkedObjectsRestSoe.Artifact' could be found (are you missing a using directive or an assembly reference?)&lt;/font&gt;    &lt;/p&gt;

&lt;h2&gt;Public Key&lt;/h2&gt;

&lt;p&gt;Now it is time for the right way: use public key instead public key token!&lt;/p&gt;

&lt;p&gt;To show the public key you use: &lt;font face="Courier New"&gt;sn –tp &amp;lt;keyfile.snk.PublicKey&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;This outputs a very long key over five lines. Copy it and add the lines together (e.g. via notepad)&lt;/p&gt;

&lt;p&gt;Next change in code the attribute line to:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;[assembly: InternalsVisibleTo("UnlinkedObjectsRestSoe.Tests, PublicKey=123456789...abscdef")]&lt;/pre&gt;

&lt;p&gt;In this case without angle brackets!&lt;/p&gt;

&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Fine – now you have:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;correct behaviour of Visual Studio and 3rd party plugins concerning squiggles under referencing code &lt;/li&gt;

  &lt;li&gt;a compileable productive project &lt;/li&gt;

  &lt;li&gt;a compilable testing project &lt;/li&gt;
&lt;/ul&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147472.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/10/27/147472.aspx</guid>
            <pubDate>Thu, 27 Oct 2011 12:35:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147472.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/10/27/147472.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147472.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147472.aspx</trackback:ping>
        </item>
        <item>
            <title>Template Method Pattern and constructors</title>
            <link>http://geekswithblogs.net/mapfel/archive/2011/10/15/147319.aspx</link>
            <description>&lt;h1&gt;Motivation&lt;/h1&gt;  &lt;p&gt;Often you want to have the possibility to call a special abstract or virtual &lt;font face="Courier New"&gt;Initialize&lt;/font&gt;-method in a constructor of a base class to set individual initializing things in an override of this Initialize-method in a derived class.&lt;/p&gt;  &lt;p&gt;This is similar to the GOF-Pattern “Template Method”. But with C# this ends up with a warning “Virtual member call in constructor”. Why we get this warning?&lt;/p&gt;  &lt;p&gt;To show the effect of this approach, lets have a look at the source and the calling graph during runtime:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://sites.google.com/site/markoapfel/VirtualMemberCallInConstructor.png" /&gt;&lt;/p&gt;  &lt;h1&gt;Consequence&lt;/h1&gt;  &lt;p&gt;You will see, that the constructor of the derived class is called *after* the call of the &lt;font face="Courier New"&gt;Initialize&lt;/font&gt;-method of this class. So you should be carefully if you set up things in the derived constructor and use later in the &lt;font face="Courier New"&gt;Initialize&lt;/font&gt;-method. Samples of such information could be identity or logging stuff.&lt;/p&gt;  &lt;p&gt;But if you don’t have a correlation between the constructor and the &lt;font face="Courier New"&gt;Initialize&lt;/font&gt;-method you could use it.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/147319.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/10/15/147319.aspx</guid>
            <pubDate>Sat, 15 Oct 2011 12:18:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/147319.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/10/15/147319.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/147319.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/147319.aspx</trackback:ping>
        </item>
        <item>
            <title>Modify properties of &amp;ldquo;Git Bash Here&amp;rdquo; shortcut in Explorer and Console Enhancement Project</title>
            <category>Tools</category>
            <link>http://geekswithblogs.net/mapfel/archive/2011/08/19/146587.aspx</link>
            <description>&lt;h1&gt;Essentials&lt;/h1&gt;  &lt;p&gt;Run the bash for this as administrator. The shortcut is located in the Git installation folder. "%ProgramFiles(x86)%\Git”.&lt;/p&gt;  &lt;p&gt;Good Setting for the layout are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Screnn buffer size&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Width: 160&lt;/li&gt;      &lt;li&gt;Height: 3000&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Windows size&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Width: 160&lt;/li&gt;      &lt;li&gt;Height: 75&lt;/li&gt; &lt;!--EndFragment--&gt;&lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;A detail explanation could be found under &lt;a href="http://stackoverflow.com/questions/2621281/unable-to-modify-git-bash-windows-shortcut"&gt;Unable to modify git bash Windows shortcut - Full Instructions&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;Additonals&lt;/h1&gt;  &lt;p&gt;With the Console enhancement project (&lt;a href="http://sourceforge.net/projects/console/"&gt;Console Enhancement Project at SourceForge&lt;/a&gt;) it’s a lot more fun to work with console.&lt;/p&gt;  &lt;h2&gt;Settings for console App&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Activate “Save settings to user directory”&lt;/li&gt;    &lt;li&gt;On tree node “Console” set the Window and Buffer sizes like above&lt;/li&gt;    &lt;li&gt;On tree node “Appearance” set “Snap to desktop edges” with a distance of 10 pixels&lt;/li&gt;    &lt;li&gt;On tree node “Appearance &amp;gt; More …” set Alpha canals for transparency to 30 for the active and 150 for the inactive window&lt;/li&gt;    &lt;li&gt;On tree node “Behavior” activate “Copy on select”&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Settings for Git Shell&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Open the settings with Edit &amp;gt; Settings…&lt;/li&gt;    &lt;li&gt;Goto tre node “Tabs”&lt;/li&gt;    &lt;li&gt;Press “Add”-Button to add a new tab specification which you could later use&lt;/li&gt;    &lt;li&gt;Name it “Git Bash”&lt;/li&gt;    &lt;li&gt;Specify the Shell, for instance with     &lt;br /&gt;C:\Program Files (x86)\Git\bin\sh.exe --login –i&lt;/li&gt;    &lt;li&gt;Setup your mostly used directory which should be the active directory, for instance     &lt;br /&gt;c:\Projects&lt;/li&gt;    &lt;li&gt;Setup a cursor style, I like XTem and Pulse in grey&lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Remarks&lt;/h2&gt;  &lt;p&gt;Have a look at the tree node “Hotkeys &amp;gt; Mouse” to get a understanding how to select some text parts in the console window&lt;/p&gt; &lt;img src="http://geekswithblogs.net/mapfel/aggbug/146587.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marko Apfel</dc:creator>
            <guid>http://geekswithblogs.net/mapfel/archive/2011/08/19/146587.aspx</guid>
            <pubDate>Fri, 19 Aug 2011 04:10:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/mapfel/comments/146587.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/mapfel/archive/2011/08/19/146587.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/mapfel/comments/commentRss/146587.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/mapfel/services/trackbacks/146587.aspx</trackback:ping>
        </item>
    </channel>
</rss>
