locked
Is there a way to develop and build a package for VS2005 using VS2008 RRS feed

  • Question

  • Hello everyone! I`m developing a package for Visual Studio it must support both VS2005 and VS2008 (and later VS2010). By now I have to switch between VS 2005 and 2008 to build versions of plug-in for apropriate IDE.

    Is there a way for me to do all my work in VS2008 (and 2010 later) and build packages for all VS versions from one development project?

    Thanks in advance, Vladimir.

    Monday, June 28, 2010 8:20 AM

Answers

  • We use a single VS2010 solution for our package that supports VS2005, 2008, and 2010. The primary things to remember are:

    1. You'll need to create separate projects to target each version of Visual Studio. I name them similar to MyAssembly.8.dll, MyAssembly.9.dll, and MyAssembly.10.dll. I place the project files in the same folder, and share the source code between them.
    2. You'll need to edit each project file and add the following line to the first <PropertyGroup> (use the correct version number for each project):

      <BaseIntermediateOutputPath>obj\2010\</BaseIntermediateOutputPath>

    3. You'll need to follow the same procedure for any referenced projects that depend on Visual Studio version-specific SDK assemblies.
    4. Whenever you add/remove files to one project, you'll need to mirror the changes in each.
    5. To allow for handling small differences between SDKs, define the preprocessor macros FORVS8, FORVS9, and FORVS10 for their respective projects.
    6. To support VS2005 without needing to run VS2008/2010 as an administrator, you'll need to build RegPkg8 from source and follow the instructions in this thread to update your permissions.
    Tuesday, June 29, 2010 4:22 AM

All replies

  • Hi Vladimir,

    The only supported scenario here would be to develop and build your package with VS 2005, and then register it to work with the later versions. The VS IDE and SDK teams worked hard to ensure that the more recent versions of the shell would be compatible with existing packages, but due to additions and changes between versions, the introduction of new .NET framework components, etc. Packages build with more recent versions of VS are for the most part, not compatible with earlier versions of the IDE.

    Sincerely,


    Ed Dore
    Monday, June 28, 2010 5:50 PM
  • We use a single VS2010 solution for our package that supports VS2005, 2008, and 2010. The primary things to remember are:

    1. You'll need to create separate projects to target each version of Visual Studio. I name them similar to MyAssembly.8.dll, MyAssembly.9.dll, and MyAssembly.10.dll. I place the project files in the same folder, and share the source code between them.
    2. You'll need to edit each project file and add the following line to the first <PropertyGroup> (use the correct version number for each project):

      <BaseIntermediateOutputPath>obj\2010\</BaseIntermediateOutputPath>

    3. You'll need to follow the same procedure for any referenced projects that depend on Visual Studio version-specific SDK assemblies.
    4. Whenever you add/remove files to one project, you'll need to mirror the changes in each.
    5. To allow for handling small differences between SDKs, define the preprocessor macros FORVS8, FORVS9, and FORVS10 for their respective projects.
    6. To support VS2005 without needing to run VS2008/2010 as an administrator, you'll need to build RegPkg8 from source and follow the instructions in this thread to update your permissions.
    Tuesday, June 29, 2010 4:22 AM