0

We've upgraded from Visual Studio 2015 to 2019 and did an enhancement using VS 2019. Now, we have in the verge of build and packaging the application in build machine, but the problem is, our team leader is saying that we can use Visual Studio 2015 on the build machine to build the project and when I told him, what is the use of upgrading 2015 to 2019 and he told me that it doesn't matter.

Now, I need few good reason to prove that building a project using VS 2015 which we've developed using 2019 is not a good idea. Can someone let me know few points?

Thanks.

Julie Xu-MSFT
  • 334
  • 1
  • 5
adahero
  • 11
  • 1
  • 6
  • 1
    Why not give it a try? Far quicker than speculating... – Richard Jan 09 '20 at 17:42
  • I learned needed to upgrade the build machine when we upgraded TFS to a newer version the old build machine did not support (VS2012 vs TFS 2008 to 2015 I think) - but I would think you could still if VS2019 can connect to your TFS source control - it should work. Depends on what you have setup - you didn't mention what version build machine or TFS / GIT / ? you are using... – ToddN Jan 09 '20 at 18:52
  • Check this link: https://stackoverflow.com/questions/24483589/does-msbuild-require-visual-studio-to-be-installed-on-the-build-server Pretty much states you don't need VS on a build machine - just MSBuild. Get the MSBuild for 2019 at https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017 scroll down and pick Build Tools for Visual Studio 2019 under Tools for Visual Studio 2019. – ToddN Jan 09 '20 at 18:59

1 Answers1

0

Now, I need few good reason to prove that building a project using VS 2015 which we've developed using 2019 is not a good idea. Can someone let me know few points?

For your situation, I must first declare that you would better use build engine of VS2019 to build VS2019 projects. And as we know, the build engine of VS supports downward compatibility which means the higher version can build the projects of lower version. For an example, you have a lower version projects which created by VS2015, you can use the VS2017,VS2019 to build this project successfully.

Therefore, it is not recommended to use the old version tool to compile the new version of the project.

In more detail, the build engine is also based on the content of your current project and the code in the content (each version of VS has slightly different rules for the code being developed and the content of the file) to finally generate the output file based on the rules of the build engine (means the target order, existing in the .props or .targets file of xxx.xxporj).

Like this:

enter image description here

enter image description here

The difference between the rules in different versions of the build tool is the different target commands in these import files

Second, if your project code only uses a few passing statement rules, you can compile using VS2015. However, if you are using some of the language rules that are specific to the higher version, you can only use the build tool in VS2019, and you will inevitably use its rules for projects that you are developing in VS2019.

Third,VS2019 contains some new workloads and new project templates while the old version VS2015 did not have. For an example, VS2019 can creating the new Net Coreproject while VS2015 did not contains the new workload, So build tool for VS2015 cannot build this type of projects. Because of this, some changes in the new release will also have an impact on msbuild. To avoid unprovoked problems, we recommend using VS2019.

In addition, l agree with ToddN. If you think VS2019 is too big and too cumbersome to download to the build server, you can just download the build tool for VS2019. You don't have to download the huge VS IDE because current VS compilation tools can be downloaded separately. When you use it, you only need to install the corresponding project's workload.

Mr Qian
  • 21,064
  • 1
  • 31
  • 41