All posts by Carlos Quintero

How to get the location of nuget.exe used by Visual Studio?

I have seen this question asked in a MSDN forum, and it’s the same question that I asked myself some months ago when I decided to adopt MSBuild to replace a custom builder that I was using for years, and as part of the build I wanted to download the latest source code.

The answer is that Visual Studio doesn’t use nuget.exe, so you can’t get its location. Instead, Visual Studio uses an extension for NuGet. For Visual Studio 2015, if you go to the folder C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\, you will find it in some of the folders with random names where machine-wide Visual Studio extensions are installed. For Visual Studio 2017 Community Edition, you can find it inside C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\NuGet:

Furthermore, you may want to use the Build Tools 2017 instead of the full Visual Studio 2017 IDE on a build machine.

So, how can you get nuget.exe installed on a build machine?  Easy! You need to download it from: 

Differences between Visual Studio 2017 Community and Professional editions

In the last weeks and months, I am seeing a lot of confusion and doubts in the forums and with the clients of my company about which Visual Studio edition can be used, which are the functionalities and what differentiates the Community edition from the Professional edition.

If we go back many years ago:

  • Visual Studio .NET 2002 / 2003 was initially a paid product in all their editions.
  • In Visual Studio 2005, Microsoft released the “Standard” and “Professional” editions, introducing also the “Express” edition, which was a limited free edition intended for neophytes, hobbyists, newbies and the like. The Visual Studio 2005 Express edition had flavors: Visual Basic 2005 Express Edition, Visual C++ 2005 Express Edition, Visual C# Express Edition, Visual J# Express Edition and Visual Web Dev Express Edition.
  • Visual Studio 2008, 2010 and 2012 followed suit offering flavored Express editions, which legally could be used within companies, but were severely limited for a professional use. For example, they didn’t allow extensions (add-ins, packages, etc.).
  • Visual Studio 2013 also offered flavored Express editions, but it introduced a new “Community” edition, which was intended for professional use and removed many limitations of the Express editions. For example, it allowed extensions.
  • Visual Studio 2015 also offered the Community edition while preserving the Express 2015 for Windows Desktop, Express 2015 for Web and Express 2015 for Windows 10.
  • Visual Studio 2017, at the time of this writing, doesn’t offer Express editions, only the Community edition.

So, if you want to use Visual Studio 2017, your only choices are the Enterprise edition, the Professional edition and the Community edition. And the most common question is: which are the differences between the Professional and the Community edition? Likely you may have also read that the Community edition is almost identical to the Professional edition, so, why to pay for the Professional edition?

There are two aspects that you need to consider: the legal aspect and the technical aspect.

From the legal point of view, Visual Studio 2017 Community edition is free (it requires registration with a Microsoft account, though) but the license doesn’t allow you to use it in all scenarios. The legal document for your lawyer is here:

Microsoft Visual Studio 2017 Community Edition License Terms

which in short specifies this:

  • If you are an individual (you don’t belong to an organization), you can use the Community edition to develop and test applications, even applications that you sell.
  • If you belong to an organization, then there are two cases: your organization is a “non-enterprise” organization, or it is an “enterprise” organization.

An “enterprise” is any organization and its affiliates who collectively have either:

(a) more than 250 PCs or users


(b) one million U.S. dollars (or the equivalent in other currencies) in annual revenues

“Affiliates” means those entities that control (via majority ownership), are controlled by, or are under common control with an organization.

  • If your organization qualifies as “non-enterprise” organization, then up to 5 developers can use the Community edition. The 6th developer would have to pay for a Professional edition.
  • If your organization qualifies as an “enterprise” organization, then:
    • Any number of users can use Community edition to develop and test applications in the following scenarios: classroom training and education, academic research, Visual Studio extensions projects or open source projects.
    • No user at all can use the Community edition if it is not for classroom training and education, academic research, Visual Studio extensions projects or open source projects. This is an important difference with the Express editions, which, for example, allowed a single system administrator in a large organization to use legally the Express edition to create scripts. In this scenario, she cannot use legally the Community edition, even if she would be the only user of Visual Studio within the enterprise organization.

From the technical point of view, the resource to be read by you or your team lead is the following:

Compare Visual Studio 2017 IDEs

If you compare row by row the columns “Visual Studio Community” and “Visual Studio Professional” you will find only two differences:

  • “Enterprise” is a supported usage scenario for the “Professional” edition, but not for the “Community” edition.
  • The Professional edition supports “CodeLens”, while the “Community” edition doesn’t. If this feature is important for you, either pay for the Professional edition or vote the CodeLens for Community Edition suggestion on UserVoice. There are also reports that installing SQL Server Data Tools (SSDT) brings CodeLens to the Community edition, at least for Visual Studio 2015.

New download location for Visual Studio language packs and updates

If you try to download some language packs, SDKs and updates for old Visual Studio versions from some links, you will notice that they no longer work, giving “Error 404 – Not found”. For example, this link still works at the time of this writing:

Microsoft Visual Studio 2015 Language Pack

But these ones no longer work:

Microsoft Visual Studio 2013 Language Pack


Microsoft Visual Studio 2012 Language Pack

And the same can happen with Visual Studio updates.

Microsoft is complicating things, and what used to be direct downloads now require you an MSDN subscription, or to sign-up for Visual Studio Dev Essentials, which fortunately is free:

Once you have an account, then you can go to:

and click the Download buttons for the desired downloads of older Visual Studio versions:

Alternatively, you can go to:

and once you are logged-in, go to the Downloads section:

and use the search functionality to find the desired download:

Templates for business intelligence projects (reporting, analysis, designer) in Visual Studio 2017

This is a common question in the forums, so I thought it would be a good idea to document this here.

In Visual Studio 2017, the project templates for Analysis Services and Reporting services, and the Rdlc Report Designer are installed through VSIX packages available on the Visual Studio Marketplace:

Microsoft Analysis Services Projects

Microsoft Reporting Services Projects

Microsoft Rdlc Report Designer for Visual Studio

Of course, you can search and install them also from within Visual Studio going to the “Tools” > “Extensions and Updates” window, “Online” node, and searching “Microsoft Reporting” or “Microsoft Analysis”:

And once installed, the project templates appear under the Business Intelligence node of the New Project dialog:

Extension Microsoft Visual Studio 2017 Installer Projects now available

Visual Studio 2010 offered some Visual Studio Installer projects that were removed in Visual Studio 2012, being replaced by a limited edition of InstallShield. That was not a very popular decision so Microsoft restored the Visual Studio Installer projects for Visual Studio 2013 in the form of an extension:

Microsoft Visual Studio 2013 Installer Projects

And for Visual Studio 2015 a new extension was released:

Microsoft Visual Studio 2015 Installer Projects

And now that Visual Studio 2017 has been released (and the InstallShield project is not even provided), a new extension has been released:

Microsoft Visual Studio 2017 Installer Projects

Once installed through the Extensions and Updates dialog:

it provides the new installer projects templates:

Visual Studio 2017 RTM released

As you may know, Visual Studio 2017 was launched last March 7 and 8 in an event whose keynote you can watch here:

You can download the Community, Professional or Enterprise editions here:

Visual Studio Downloads

The first thing that you will notice is a new modular setup based on “workloads” and individual components that allow a very customized installation:

The new Visual Studio 2017 installation is so isolated and resilient (it uses its own private registry hive and doesn’t install files on the Global Assembly Cache) that for the first time it allows to install several editions (Community, Professional, Enterprise) on the same machine, coexisting side by side.

At the time of this writing, the Express editions have not been announced and it is not clear if they will be released. Also, the Isolated and Integrated Shells haven’t been announced yet.

There are no .iso files to download, only web installers, but you can create an offline installer as explained here:

Create an offline installer for Visual Studio 2017

To learn what’s new see:

What’s New in Visual Studio 2017

You can check the release notes here:

Visual Studio 2017 Release Notes

You will notice new icons for the Visual Studio family of products:

To report problems you need to use the Send Feedback button, that creates a topic on the Visual Studio Developer Community site:

And you have almost 70 on-demand videos about Visual Studio 2017 on MSDN Channel 9:

Visual Studio 2017 Launch event videos

Eager for more new incoming features? Visual Studio 2017 offers now the Preview program for early adopters, so you can download, install and test the latest bits (not for production environments!):

Early Access to Visual Studio Preview

How to use Visual Studio in a different international language

Visual Studio has always allowed to select the language of the environment in the Options window, Environment > International Settings section:

But, how do you get a new international language installed? The answer depends on the Visual Studio version:

Finally, there is a way to programmatically launch Visual Studio in the desired language:

devenv.exe /LCID <LocaleID>

where <LocaleID> can be 1033 for English, 3082 for Spanish, etc.

How to guess the contents of a setup

From time to time, you may need to guess the contents of a setup, maybe because some condition fails and doesn’t install, or maybe you want to make it work with a new version of Visual Studio or Windows.

The approach to guess the contents of a setup depends on the type of setup:

  • For example, .vsix extensions for Visual Studio are really .zip files, so you can rename them to .zip (or add that extension) and then you can simply unzip them:That way you can for example modify the contents of the extension.vsixmanifest file to make an extension compatible with a new version of Visual Studio if the owner has disappeared or doesn’t upgrade it.
  • For setups that are .exe files, normally when run they are uncompressed in the temp folder (C:\Users\<user>\AppData\Local\Temp), so you can clean the contents of that folder, run the setup.exe and then see what has been created in that folder. Imagine for example that you want to know the components of the Microsoft Build Tools 2015. How would you know if the docs don’t provide that information? After the first initial dialog, you would go to the temp folder:
    And you would open the LocalizableStrings.xml file, that contains the selectable items:
  • For setups that are .msi files, you can use the orca.exe tool, that is able to open those files to see their internal tables (msi files are like databases). To get the orca.exe tool installed is a bit convoluted, so here he go:
    • Download a Windows SDK, such as Windows SDK 8.1
    • Select the MSI Tools:
    • Go to folder where the SDK was installed, locate the Orca-x86_en-us.msi installer and run it:
    • Finally go to the folder where the orca.exe tool is installed:

    Now you can right-click any .msi file and select the “Edit with Orca” menu entry. Here you can see File table of the Orca-x86_en-us.msi file that we used to install the orca.exe tool:

Running Visual Studio or setups with DPI virtualization (DPI-unaware) on high DPI displays

The high-DPI (retina) displays pose some problems to us developers, so that we need to modify our applications to make them DPI-aware. In the post Visual Studio extensions and DPI-awareness I explained how I became DPI-aware and the painful experience to make my application (an extension for Visual Studio) DPI-aware. If you don’t know about DPI-awareness, start with that post.

In this post, I am going to explain how to do the opposite: to make an application that claims to be DPI-aware run as DPI-unaware. Technically this is called DPI virtualization mode, where the application thinks that it is running at 96 dpi and the Windows OS scales its window as a bitmap to the proper size. The result is that the application appears blurred but it’s usable, while in DPI-aware mode it has problems (by the way, if your problem is the opposite, see the Knowledge Base article Some desktop applications may appear blurred on high-DPI displays).

I have found a couple of scenarios where I have wanted some applications to become DPI-unaware even at the cost of appearing blurred on my retina display:

The first case is designing Windows Forms with Visual Studio. Modern versions of Visual Studio (2015, 2017) are truly DPI-aware but they alter the designer files of Windows Forms, so you need to either use a non-retina display, or to use a virtual machine with retina display disabled or to set the retina display scaling to 100% instead of 200% or 250%, which makes everything tiny and unreadable. But there is a better solution: you can make Visual Studio (or any process) DPI-unaware adding the following registry entry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe]

(Thanks to Tanya Solyanik, from Microsoft, that provided me this trick).

The other case is an application that claims that it is DPI-aware, but it is not really. For example, the setup of the Windows SDK 7.1 (you may download it as winsdk_web.exe, but once executed the process is really sdksetup.exe). You can see here in Process Explorer that it claims that its DPI-awareness is “System Aware”:

But when executed on a retina display, it becomes tiny and truncated:

When creating the registry entry above for SDKSetup.exe:

then it displays with the correct size and without truncations, that is, usable (although blurred):

I hope this post helps if you are in one of those two scenarios.

Licensing the Visual Studio family of products (or using them for free)

A common question that you may have about using legally Visual Studio is which are your options. As always happens with licensing, it is a somewhat complex subject with quite a lot of options, but the good news is that if you are an individual developer or a small team, you can use all the family of Visual Studio products for free. I am not a lawyer, so validate all this information with a lawyer or legal department. The purpose of this post is to provide you the pointers to the different options.

The first thing to know are the products and editions:

  • Visual Studio
    • Visual Studio Community Edition
    • Visual Studio Professional Edition
    • Visual Studio Enterprise Edition
  • Visual Studio Code
  • Visual Studio Team Services
  • Team Foundation Server
    • Team Foundation Server
    • Team Foundation Server Express Edition

Licensing Visual Studio

Visual Studio Professional Edition and Enterprise Edition are paid versions, while the Community Edition is free for some scenarios.

You can compare the three editions on this page:

Compare Visual Studio 2015 Offerings

For Visual Studio Professional Edition and Enterprise Edition, you can compare the purchase options (Standalone for the Professional Edition, or Standard / Cloud subscriptions for both editions) on this page:

Visual Studio Purchasing Options

Visual Studio 2015 Community Edition is free under these scenarios (see Visual Studio Community):

  • For individuals: Any individual developer can use Visual Studio Community to create their own free or paid apps.
  • For non-enterprise organizations (meaning those with ≤250 PCs and ≤$1 Million US Dollars in annual revenue): Up to five users can use Visual Studio Community.
  • For enterprise organizations (meaning those with >250 PCs or >$1 Million US Dollars in annual revenue): Visual Studio Community can be used for the following scenarios:
    • In a classroom learning environment
    • For academic research
    • For contributing to open source projects

The exact details for the license terms of Visual Studio 2015 Community edition are here:


Licensing Visual Studio Code

Visual Studio Code is both open source and free. The detailed license is here:


Licensing Visual Studio Team Services

Visual Studio Team Services distinguishes three kind of users:

Licensing Team Foundation Server

If you don’t like the idea of using Team Services on the cloud, you can use Team Foundation Server on-premises:

  • For individuals or teams up to 5 developers, you can use the free Team Foundation Server Express, that you can download here.
  • For teams with more than 5 developers you need to pay for the additional developers as explained here: Buy access to Team Foundation Server or TFS Test hub.

Finally, the ultimate guide for licensing Visual Studio, Visual Studio Team Services or Team Foundation Server is this white paper:

Visual Studio 2015 Licensing White Paper