Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Question
Wednesday, May 4, 2016 12:09 PM
Hi
I have Visual Studio 2013 Professional running on Windows 10, and i want to use the Windows 10 SDK because i need to write a small D3D12 path in my app. You might ask : Why would you need D3D12 immediately ?
I have developed a Software Video Recorder kinda like OBS ( Open Broadcaster Software ), but far more advanced. It took 3 years of developement and will be released in an open beta in 1-2 months. My App works with games in all D3D modes ( well nearly all ... ), all bit depths and all window modes. You can even switch between Desktop and Games while recording ( similar to OBS ), the app captures everything that is on screen no matter what app in whatever state is on screen ( thats something OBS cant as it needs Borderless Window setting ingame for the Desktop Duplication API ).
The point is i need to write some D3D12 rendering paths here and there to make the app work with DX12 Games ( which currently begin to come in; Battlefield 5 in autumn for example ). I installed the Targeting Pack for NET 4.6 so i can build apps targeting that framework. But when i install the Windows 10 SDK the default SDK and so the include path stays the same ( Windows 8.1 SDK ).
I know that in VS 2015 you can select the target SDK like described here :
https://msdn.microsoft.com/de-de/library/mt186161.aspx
Since we dont have this option in VS 2013 we have to use a property sheet i guess and set all the includes by hand. I found this blog post which describes it for targeting the Windows 8 SDK :
I already started writing my own property sheet and setting the include paths but they are different to Windows 8 SDK of course and so its kinda messy ( searching for the correct paths/files in Windows Explorer ).
I would have bought VS 2015 if the launch price wouldnt be that high as it always is in Germany ( 600-700 Euro ). I am realy wondering why there is no upgrade solution offered by Microsoft. There are already a lot of negative ratings on the official Visual Studio website because of this, and there are also some rants here and there over at Stackoverflow about this. I just bought VS 2013 Professional for 600 Euros 16 months ago and now i would have to pay it again just because there is no upgrade path.
@ Microsoft : Please give us some help on how to use the Windows 10 SDK in older Visual Studio versions.
If someone else knows an easier way than using a property sheet please let us know.
Regards,
co0Kie
All replies (3)
Wednesday, May 4, 2016 12:29 PM ✅Answered
Hi co0Kie,
There is a blog post regarding Windows 10 SDK which also has the props available as download:
https://blogs.msdn.microsoft.com/chuckw/2015/07/30/windows-10-sdk-rtm/
With kind regards,
Konrad
Wednesday, May 4, 2016 3:24 PM ✅Answered
Thank you Konrad
I must be blind as i know that site already. Somehow i overlooked the link for the Zip file down there.
In the meantime i solved the problem using the link from my first post. Its very simple :
->
1) In the Property Manager right click on the project and add a new Property Sheet.
2) Double click that Property Sheet and under User-Macros add the following macros
1. Name = WindowsSDK10_Directory
Value = $(ProgramFiles)\Windows Kits\10
2. Name = WindowsSDK10_ExecutablePath
Value = $(ProgramFiles)\Windows Kits\10\bin\x86;
$(ProgramFiles)\Microsoft SDKs\Windows\v10.0A\NETFX 4.6 Tools
3. Name = WindowsSDK10_IncludePath
Value = $(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\um;
$(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\shared;
$(ProgramFiles)\Windows Kits\10\Include\10.0.10586.0\winrt
4. Name = WindowsSDK10_LibraryPath_x86
Value = $(ProgramFiles)\Windows Kits\10\lib\10.0.10586.0\um\x86
5. Name = WindowsSDK10_LibraryPath_x64
Value = $(ProgramFiles)\Windows Kits\10\lib\10.0.10586.0\um\x64
3) Now replace the necessary macros under VC++ Directories like this :
Executable Paths =
replace $(WindowsSDK_ExecutablePath) with $(WindowsSDK10_ExecutablePath)
Include Paths =
replace $(WindowsSDK_IncludePath) with $(WindowsSDK10_IncludePath)
Library Paths =
replace $(WindowsSDK_LibraryPath_x86) with $(WindowsSDK10_LibraryPath_x86)
Exclude Paths =
replace $(WindowsSDK_IncludePath) with $(WindowsSDK10_IncludePath)
->
The macros set under point 3 are for an x86 app. Of course you have to use the $(WindowsSDK10_LibraryPath_x64) macro when you want to build x64. You can set a checkmark on a user defined macro to make it build wide available, regardless of x86 or x64 ( so you only have to add a macro once ).
And thats it. Well there is the WindowsSDK_MetadataPath left on WinRT Paths, but hey it works at the moment so i dont care. The metadata path seem to be different from older SDK's to the new one. Maybe someone could clarify this.
Regards,
co0Kie
Wednesday, May 4, 2016 3:37 PM
Hi co0Kie,
I am glad that you solved your problem and thank you for sharing the details.
With kind regards,
Konrad Neitzel
Edit: I marked your reply as answer again, because from my perspective this summary of your solution includes details that might be of interest for others, too. I hope you do not see this action as abusive (feel free to unmark it again if you do not agree!)