locked
Upgrading solution from VS 2015 to VS 2017 RRS feed

  • Question

  • I am trying to upgrade my solution from VS 2015 to VS 2017.

    When I loaded the VS 2015 solution into VS 2017, VS 2017 displayed a conversion dialog (for Target Platform Version and Platform Toolset).

    I made my selections and thought I was done.

    However my solution file contains the following lines:

    # Visual Studio 14
    VisualStudioVersion = 14.0.25420.1

    while a new 2017 solution contains:

    # Visual Studio 15
    VisualStudioVersion = 15.0.27428.2015

    Furthermore my converted (VS 2015 to VS 2017) solution contains the following definitions:

    $(VC_ExecutablePath_x64)               C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64
    $(WindowsSDK_ExecutablePath)      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

    while the new VS 2017 solution contains these definitions:

    $(VC_ExecutablePath_x64)               C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86
    $(WindowsSDK_ExecutablePath)      C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86

    The VC++ Include files in my converted solution are:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include

    and the VC++ Include files in my new VS 2017 solution created from scratch are"

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\atlmfc\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\include

    In my solution converted from VS 2015 to VS 2017, the solution explorer displays all of the projects in my solution with a "(Visual Studio 2015)" suffix.

    What must I do to correctly convert my solution to Visual Studio 2017?


    Wednesday, March 28, 2018 11:52 PM

Answers

  • Do you mean after you upgrade the Visual C++ project to VS2017, when you use notepad to view the .sln file, the display information that is still relevant to VS2015?

    No.  You can use any viewer you want.  You don't have to use notepad.   I knew no matter how much detail I included, my description would be misinterpreted.

    As I noted:

    The VC++ Include files in my converted solution are:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include

    and the VC++ Include files in my new VS 2017 solution created from scratch are:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\atlmfc\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\include

    This is because I declined to update my Platform Toolset from v140 (Visual Studio 2015) to v141 (Visual Studio 2017) which updates all the default include directories as well as other parameters:

    $(VC_ExecutablePath_x64)               C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86
    $(WindowsSDK_ExecutablePath)      C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86

    What I am perplexed at is no matter how much detail I included in these posts my posts are always misinterpreted.

    Thursday, March 29, 2018 5:12 PM

All replies

  • Hi Anonymous,

    Welcome to the MSDN forum.

    >> In my solution converted from VS 2015 to VS 2017, the solution explorer displays all of the projects in my solution with a "(Visual Studio 2015)" suffix

    Do you mean after you upgrade the Visual C++ project to VS2017, when you use notepad to view the .sln file, the display information that is still relevant to VS2015?

    Based on my understanding, the display information does not affect project upgrades, you could manually modify it. For example, you could manually modify the VisualStudioVersion to ‘15.0.27428.2015’. After modified, the icon for the .sln file will change from VS2015 to VS2017.

    So, if the project works correctly, it means that the upgrade is successful, no matter how the file display.

    More information about upgrading Visual C++ project, please refer to following guide:

    https://docs.microsoft.com/en-us/cpp/porting/visual-cpp-porting-and-upgrading-guide

    Regards,

    Judyzh

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Thursday, March 29, 2018 6:48 AM
  • Do you mean after you upgrade the Visual C++ project to VS2017, when you use notepad to view the .sln file, the display information that is still relevant to VS2015?

    No.  You can use any viewer you want.  You don't have to use notepad.   I knew no matter how much detail I included, my description would be misinterpreted.

    As I noted:

    The VC++ Include files in my converted solution are:

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include

    and the VC++ Include files in my new VS 2017 solution created from scratch are:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\atlmfc\include
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\include

    This is because I declined to update my Platform Toolset from v140 (Visual Studio 2015) to v141 (Visual Studio 2017) which updates all the default include directories as well as other parameters:

    $(VC_ExecutablePath_x64)               C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86
    $(WindowsSDK_ExecutablePath)      C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86

    What I am perplexed at is no matter how much detail I included in these posts my posts are always misinterpreted.

    Thursday, March 29, 2018 5:12 PM
  • "What I am perplexed at is no matter how much detail I included in these posts my posts are always misinterpreted."

    The problem is, you didn't mention that you declined the toolset change. This is vital information which explains why your old projects contain the VS2015 paths and the ones added in VS2017 contain the VS2017 paths.

    The toolset controls the paths, so if you want to use the VS2017 paths, you have to change to the VS2017 toolset. If you want your new projects to use the VS2015 paths then you have to change the new projects to the VS2015 toolset.

    From your original post:

    "What must I do to correctly convert my solution to Visual Studio 2017? "

    The obvious answer would have been to accept the toolset change. Your solution would have then been completely updated so that all projects would have been set to the VS2017 toolset, and therefore use the new toolset.

    Since you have gotten to this point where some of the projects are using VS2015, then you can change the platform toolset in the project settings. This should be easy enough to find.

    Any projects that have:

    Just change to Visual Studio 2017 (v141) and they will be updated. Also, be extra careful when updating the property pages, make sure that if you want to update the toolset for all configurations and all platforms then select All Configurations and All Platforms in the project properties window.


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    • Edited by Darran Rowe Thursday, March 29, 2018 9:08 PM
    • Proposed as answer by Judy ZhuY Friday, March 30, 2018 8:01 AM
    Thursday, March 29, 2018 9:06 PM
  • Actually I did mention that I declined the toolset change.

    And you just proved my point.

    What I am perplexed at is no matter how much detail what I included in these posts, my posts are always misinterpreted.

    You people insist on infinite detail and intentionally misinterpreting what I say.

    Friday, March 30, 2018 4:00 PM
  • No, your original post did not mention that you had declined the toolset change. To quote your original post:

    "

    I am trying to upgrade my solution from VS 2015 to VS 2017.

    When I loaded the VS 2015 solution into VS 2017, VS 2017 displayed a conversion dialog (for Target Platform Version and Platform Toolset).

    I made my selections and thought I was done.

    "

    This was from your post dated Wednesday 28th March. No mention of the platform toolset change there. It was only in your follow up post on Thursday 29th March that you mentioned that you declined the toolset change. Re-read your own posts if you are confused.

    It was the 29th March post when I mentioned that you originally didn't mention that you declined the toolset change and this was vital information. Of course you have every right to be picky in my wording since I wrote:

    "The problem is, you didn't mention that you declined the toolset change."

    Where it should have been:

    "The problem is, you didn't originally mention that you declined the toolset change."

    But I have a bad habit of relying on context, and I have these forums set to show in the threaded view not flat view, so I forget that at times my post is just shoved at the end for some people and not indented and placed near the corresponding post. So the link between the exact reply I am posting to has been lost. So no, I didn't prove your point.

    Also, you kind of forgot to mention if my advice of changing the platform toolset option in the project properties helped.


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    Friday, March 30, 2018 4:26 PM
  • Yes, it did.  Reread it.

    What is your problem?

    Friday, March 30, 2018 4:26 PM
  • I have re-read it several times. To fully quote your original post:

    I am trying to upgrade my solution from VS 2015 to VS 2017. When I loaded the VS 2015 solution into VS 2017, VS 2017 displayed a conversion dialog (for Target Platform Version and Platform Toolset). I made my selections and thought I was done. However my solution file contains the following lines: # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 while a new 2017 solution contains: # Visual Studio 15 VisualStudioVersion = 15.0.27428.2015 Furthermore my converted (VS 2015 to VS 2017) solution contains the following definitions: $(VC_ExecutablePath_x64) C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64 $(WindowsSDK_ExecutablePath) C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin while the new VS 2017 solution contains these definitions: $(VC_ExecutablePath_x64) C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86 $(WindowsSDK_ExecutablePath) C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86 The VC++ Include files in my converted solution are: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include and the VC++ Include files in my new VS 2017 solution created from scratch are" C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\atlmfc\include C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\include In my solution converted from VS 2015 to VS 2017, the solution explorer displays all of the projects in my solution with a "(Visual Studio 2015)" suffix. What must I do to correctly convert my solution to Visual Studio 2017?

    Now please tell me where that said you declined the platform toolset change. Do not include:

    This is because I declined to update my Platform Toolset from v140 (Visual Studio 2015) to v141 (Visual Studio 2017) which updates all the default include directories as well as other parameters:

    From your post in the 29th March post because that was a follow up post, not the original post.


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    Friday, March 30, 2018 4:31 PM
  • If you can't add anything constructively, please stop commenting.

    Your comments now border on bullying.

    I am reporting you.


    Friday, March 30, 2018 4:33 PM
  • Well, I apologise if you felt like there was any kind of bullying going on. That was not my intention.

    I was focused on getting to the bottom of the misunderstanding, since as you know, text only communication on the internet can be difficult.

    My intention in asking this was to figure out where you provided information. Since you stated that you provided information on what your selection for the upgrade was, but my understanding is that you only provided this information in response to Judy Zhu. I was attempting to see where you stated this in your original post so if I had missed something then I could have apologised at that time, if what you wrote was unclear, then I could have provided feedback on why I felt it was unclear so you could use it in future to make what you post clearer.

    Also, getting misunderstood and misinterpreted is a natural occurrence when you are only communicating by text with someone else. You are different people, you have different knowledge and memories, you make different assumptions and this can easily lead different people to different conclusions. We also miss things because emotions do not show through in text. Even after around 13 years on this forum, I still get misunderstood and I still have to make myself clear or ask for clarification. 


    This is a signature. Any samples given are not meant to have error checking or show best practices. They are meant to just illustrate a point. I may also give inefficient code or introduce some problems to discourage copy/paste coding. This is because the major point of my posts is to aid in the learning process.

    Friday, March 30, 2018 10:41 PM