WindowsSdkDir is not set correctly in Visual Studio 2010 - visual-studio-2010

So i've been searching this for quite a while now, to no avail! Has anyone figured out how to change the $(WindowsSdkDir) macro in visual studio 2010, to make it point to whatever version of the windows sdk they would like?
Hopefully this can be a reference to all those who will search for this after me. :)

To tailor an individual Visual Studio 2010 project to use a specific version of the Windows SDK go to Project | Properties, select the General tab (under Configuration properties) and then set the "Platform Toolset" drop down to point at the SDK you want to use. The WindowsSdkDir macro will change appropriately.
Remember to make this change for all Configurations and all Platforms.

I ran into a similar problem when trying to setup a fresh system using VS2010 and the Windows 7 / .NET 4 SDK (v7.1). The solution turns out to be similar to the one for Visual Studio 2008, but in a different registry location. You want to apply the same edits, but the location is
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows
for 32b Windows and
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows
for 64b Windows.
Also, depending on your installation (for both 32b and 64b versions of Windows), you may also need to change the corresponding key in the HKEY_CURRENT_USER tree.
You want to edit the following keys to point to the SDK version you want to use:
CurrentInstallFolder
CurrentVersion
ProductVersion
After making the changes, I restarted Visual Studio and it used the appropriate SDK version. I don't know if this is a bug in the SDK installer (one was logged for the WindowsSDK v6.1, but none for v7.1) or if it is by design, but everything seems to compile correctly after my changes.
Tested for 32b and 64b Windows 7.

[HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows]
"CurrentInstallFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
Note that, in contrast to the other registry locations, here actually no sub-key for 7.1 might exist. Don't be confused Visual Studio 2008 is searching here anyways.

Related

Visual Studio Installer Projects product name diacritics

I am using Microsoft Visual Studio Installer projects extension to create an installer for my app.
Works OK, but the problem is that the product name contains "ลก" character in it and the font used in the msi installer obviously doesn't support that character:
Anything I can do about that?
Some background info:
I initially developed the app in VS 2015 which had a free Install Shield Limited edition. Or maybe it was even VS2013, don't really remember... However, now I need to make some changes in the app. There was no problem with such a name in Install Shield back then. So I tried to open the project in VS 2022, but obviously Install shield's no longer an option. This is where VS Installer project comes in, but there's the problem with the diacritics...
This looks like an encoding issue. Try searching in the VS project properties for an option to set the encoding to Unicode. I don't use the VS projects that much, so I don't know if you have the option to change it not, but it might be there.
Also, if you are looking for a better free MSI packaging tool, try the Advanced Installer extension for Visual Studio. There is one for each version of VS.
Disclaimer. I work on the team building Advanced Installer.

Is it Possible to vs-15 project open from vs-13 without any error?

I am using Visual Studio 2015, but I have to show my project from Visual Studio 2013 pc, Is it harmful for solution file? or any file? Visual Studio 2015 have some extra feature, that cant's contain Visual Studio 2013. Now how can I solve it?
I want to recommend not to mix different versions of Visual Studio. Please strictly create different folders for different versions e.g . one for VS2013 and another for VS2015.
You know - different versions installed on one PC is possible.
If you really want to go one version back to show your VS2015 project in a VS2013 IDE make sure you have a backup in a safe place. You maybe warned - don't make the mistake of mixing code versions when you switch from one PC to another.
Try to open and show for your needs in your special development environment by yourself it is possible but be careful like mentioned above. Having used the highest dotnet version possible in VS2015 you'll get errors.

Hiding platform toolset in solution explorer for C++ projects

I am using Visual Studio 2013 on a solution where all c++ projects have platform toolset of Visual Studio 2012 - Windows XP. I cannot upgrade them for compatibility reasons with the rest of the developers. However, the string "(Visual Studio 2012 - Windows XP)" is added to all project names in solution explorer and generates a lot of clutter in my eyes.
Is there any way to hide it? I know that all projects are of this platform. I don't need VS to tell me :)
Yes, there is a way to do this. It involves editing some files that maybe shouldn't be edited, and it's likely unsupported and may mess up your installation, but as long as you back up the modified files you should be able to revert if anything bad happens. That's the warning.
That said, I've tried this and it worked for me without any issues (that I'm aware of) and I do believe the procedure is safe as it mainly relates to cosmetics (although it might break future upgrades).
If you installed VS2013 in the default location you should have a file called Microsoft.Cpp.Default.props in the directory C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
This file contains, among other things, information on how (some of the) the installed platform toolsets are displayed in the project property pages and what string (if any) is added to the project name in the solution explorer.
The rows with properties called something like _PlatformToolsetShortNameFor_v120_xp control the string that is shown in the solution explorer (in this case the 2013 - xp toolset), and the rows with properties called something like _PlatformToolsetFriendlyNameFor_v120_xp control what's shown in the project property page.
As the Visual Studio 2013 - Windows XP (v120_xp) toolset by default didn't show anything extra in the solution explorer I added a row for:
<_PlatformToolsetShortNameFor_v120_xp Condition="'$(_PlatformToolsetShortNameFor_v120_xp)' == ''">LOLZ I Changed This - Visual Studio 2013 - Windows XP (v120_xp)</_PlatformToolsetShortNameFor_v120_xp>
and also modified the _PlatformToolsetFriendlyNameFor_v120_xp like this:
<_PlatformToolsetFriendlyNameFor_v120_xp Condition="'$(_PlatformToolsetFriendlyNameFor_v120_xp)' == ''">OH MY - Visual Studio 2013 - Windows XP (v120_xp)</_PlatformToolsetFriendlyNameFor_v120_xp>
And the results were this:
and this:
To hide the string that gets appended to the project name in the solution explorer simply remove or comment out the corresponding PlatformToolsetShortNameFor. Since it's an xml-file you comment using <!-- and -->

Wrong OS version in Windows CE binary (with Visual Studio 2010)

I'm trying to create an executable for a Windows CE 5.0 device.
The SDK has been selected right (STANDARDSDK_500 (SH4)) and connection to the device works. However, the binary created by Visual Studio refuses to be "deployed" on the device, claiming that the Windows version is not high enough.
Having a look at the EXE file (with the amazing Dependency Walker utility that supports WinCE binaries) shows "OS Ver" 6.0 and "Subversion" 6.0. I want them to be 5.0!
WHERE does one set this, or WHERE can something be overriding the SDK selection I've made? This is rather frustrating. I'd like to like Visual Studio 2010, but it simply makes too much pain, too often. Things should just work.
Grep on the files revealed that the .vcproj file had lines with
AdditionalOptions=" /subsystem:windowsce,6.00"
Removing such corrected the problem.
What's sad is that the setting was completely missing on the IDE side, so there's no way to fix it there. It wasn't even shown on the "command line" summaries of what the IDE presumably sends to the actual compiler.
This is why IDE's often suck.

Visual Studio 2010 with phone tools - Any advanced/configurable settings?

In Visual Studio 2008, there was the device manager for setting up additional templates and options for the emulator. None of these options are available with Visual Studio 2010 which I understand as the features were removed.
When the Phone Tools are installed, the device target box comes back but there are no options at all.
Basically, I was just wondering where this list gets its options from and if there is any way at all to configure it?
The closest I got to was find the %LocalAppData%\microsoft\phone tools folder, but not sure this is correct as it appears to be more related to the emulator itself (e.g. if deleted, it gets recreated when you run.).
(Link to something a post that helped me years ago)
It took me a while, but it looks like I have found it.
I was on to the correct path with %LocalAppData%\microsoft\phone tools. All the targets are in the conman_ds_platform.xslt file.
I have no idea why they no longer provide an interface for customising - but it looks to me that despite MS taking the feature out of Visual Studio, it is still possible to customise this and add your own devices just fine.
... Next, depending on time, I will try to convert the Windows Mobile/CE project templates to VS 2010 and see if it is possible to do full development on Visual Studio 2010.

Resources