Always Run as Administrator

There are lots of reasons why you might need to run an application as administrator. Visual Studio, for example, needs admin privileges to do things like run a project using IIS or launch the Azure Compute Emulator. If you use these tools daily, manually running as Administrator gets tiresome. The straightforward way to automate this is to check the “Run as Administrator” checkbox on a shortcut, but that checkbox doesn’t get used if you’re opening files directly.

Luckily, there’s a not-so-obvious way to perma-enable running as administrator for an executable.

  1. Navigate to the file in Explorer
  2. Right-click the program and choose Troubleshoot Compatibility
    1 troubleshoot-compatibility
  3. A dialog will display that says it’s detecting issues
    2 detecting-issues
  4. When prompted, select the option to Troubleshoot program

    3 troubleshoot-program
  5. Check the box next to The program requires additional permissions
    4 requires-additional-permissions
  6. The next screen tells you that the UAC setting “Run as administrator” has been applied; click Test the program… to launch the application to verify
    5 test-the-program
  7. You can verify that the application is running as administrator because “(Administrator)” will be added to the title bar
    6 running-as-administrator
  8. The troubleshooter will ask you to verify that the problem was fixed; select Yes, save these settings for this program
    7 is-the-problem-fixed
  9. Finally, you’ll be displayed a summary indicating that the “problem” has been fixed, and you can close the troubleshooter
    8 troubleshooting-completed

And–voila!–your application will now launch as administrator regardless of how its started, whether it be through a shortcut to the .exe or by double-clicking a file for which it’s the default program.

Where my squiggles at?

Somehow, I lost my warning & error squiggles in Visual Studio. These are controlled in Options > Text Editor > C# > Advanced. Enable/disable them by using the Underline errors in the editor and Show live semantic errors checkboxes.

show-live-semantic-errors

Solution via visual studio – How to get rid of warning squiggles for WPP TraceEvent macro? – Stack Overflow.

Go To Implementation with View Call Hierarchy

Hands down, my favorite thing about ReSharper is that it adds Go To Implementation to the context menu for easy navigation to a function in a class that implements an interface. That’s kind of a wordy statement, so let me rephrase. Consider the example below. If I have a variable foo of type IFoo, ReSharper lets me right-click a call to foo.Bar() and jump directly to the implementation in either BasicFoo or ExtremeFoo.

interface IFoo
{
    public void Bar();
}

class BasicFoo : IFoo
{
    public void Bar()
    {
        Console.WriteLine("BasicFoo.Bar()");
    }
}

class ExtremeFoo : IFoo
{
    public void Bar()
    {
        Console.WriteLine("ExtremeFoo.Bar()");
    }
}

But what if you don’t have ReSharper? I used to think the next best option was Find All References, which does a good job of finding all the right places where you might want to look for an implementation. However, the implementations are mixed with the method itself and calls to the method, and the results returned by Find All References can become rather unruly.

find-all-references

Note that I said “used to think,” though. See that option under Find All References in the context menu, View Call Hierarchy? Use that. If you look at the Call Hierarchy for an interface method, you’ll get a group of implementations–exactly what I love about ReSharper’s Go To Implementation! You’ll also have a group of callers to the method which is what you get from another ReSharper nicety, Find Usages. Awesome.

call-hierarchy

Call Hierarchy is pretty amazing, and it’s kind of a bummer that I didn’t know about it until just now. Find All References still has its uses, but it’s taking a backseat to View Call Hierarchy in my toolkit. If you haven’t used it before, give it a shot–I bet you’ll love it, too.

Visual Studio Fix: Intellisense Not Popping Up or Not Working « OmegaMan’s Musings

I was monkeying around with Resharper optimization and lost Intellisense altogether! Here’s how I got it back.

In quick launch type “Statement Completion” and choose the first one  “Text Editor -> All Languages -> General” to be taken to the options page for all languages.

On the general options page in the “Statement Completion” section override whatever is in the boxes “Auto list members” and “Parameter Information” and makes those checked. Such as shown here:

via Visual Studio Fix: Intellisense Not Popping Up or Not Working « OmegaMan’s Musings.

Ultimate Guide to Speeding Up ReSharper (and Visual Studio) – JetBrains .NET Tools Library – Confluence

After a few months off, I’ve re-added ReSharper to my toolkit. It’s a little pokey with my current solutions, though. I found some good info from JetBrains on speeding it. up. Enjoy!

Ultimate Guide to Speeding Up ReSharper (and Visual Studio) – JetBrains .NET Tools Library – Confluence.

Create Permanent Custom Styles in Outlook

One of my peeves in Outlook is the formatting of code snippets that I send in email. Nine times out of ten, I’m copying and pasting from Visual Studio. That works pretty well; you get keyword highlights and all that fun stuff. Life is good–unless you happen to have a dark background. I like the dark theme for Visual Studio 2012, but I can’t stand that pasted text comes with a black highlight! It’s not that I mind the black background, but the highlighted text looks like a disaster.

DarkBackgroundCodePasteIntoOutlook

At this point, you’ve got three options: go back to a light-background theme in Visual Studio, deal with it, or adjust the formatting in Outlook. It looks too ugly for me to ignore, so option #2 is out. Until know, I’ve been exercising option #1, living in a default-themed world. I decided to go in a different direction today, though. I created a style that I can use to quickly format my pasted code. (An easy solution that I considered using for a while was to use LINQPad as a formatting buffer. I’d copy/paste code from Visual Studio to LINQPad and then re-copy/paste from LINQPad to Outlook. It works.)

The key to making this as painless as possible is getting the style configured correctly. Here are the steps I used to create my new style in Outlook 2013:

  • Choose “Create a Style” from the Styles gallery (FORMAT TEXT > Styles)
  • Change paragraph spacing options
    • After: 0 pt
    • Line Spacing: Single
  • Modify borders and shading
    • Border Setting: Box
    • Border Color: White
    • Border > Options > From text (all sides): 12 pt
    • Shading Fill: Custom Color (RGB: 30, 30, 30)

To ensure the style sticks around for future emails, do the following:

  1. Change Styles > Style Set > Save as a New Style Set…
  2. Change Styles > Style Set > Set as Default
  3. Restart Outlook for the new default style set to take effect

When I paste code from my dark themed Visual Studio, it still looks ugly. I can make it prettier by simply selecting the text and applying my new style. As a final beautification, I select the text and remove the black highlight from the text. (The removal of highlighting wouldn’t be necessary if I were content to use a black background, but I think 30/30/30 gray looks nicer, and so I will remove the highlight.)

DarkBackgroundCodePasteIntoOutlook_Better

It’s definitely a few extra clicks anytime I’m sending code, but the end product looks good!

Change Code Analysis Rule Sets in Visual Studio 2012

Code Analysis is a great way to identify problems with your code and enforce standards. By default, Code Analysis in Visual Studio 2012 uses a rule set called Microsoft Managed Recommended Rules. It’s a set of rules that Microsoft has deemed most important, and they suggest following these rules in all projects. Here’s their description of the rule set:

You can use the Microsoft Managed Recommended Rules rule set to focus on the most critical problems in your managed code, including potential security holes, application crashes, and other important logic and design errors. You should include this rule set in any custom rule set that you create for your projects.

I like this rule set, but it’s not enough for me. I suggest using Microsoft’s Basic Design Guideline Rules rule set. The MSDN description suggests, “You should include this rule set if your project includes library code or if you want to enforce best practices for code that is easy to maintain.” Best practices for code that is easy to maintain? Who doesn’t want that!?

I can tell I’ve sold you on this rule set, and now you’re wondering how to actually use it. Don’t worry, it’s easy!

  • Open the Code Analysis window in Visual Studio (View > Other Windows > Code Analysis)
  • Click the ‘Settings’ button
    CodeAnalysis_Settings
  • Click the rule set value next to the project(s) that you want to change
    CodeAnalysis_RuleSets

That’s it! Now, when you run Code Analysis, it will use the selected rule set.