addin version management

addin version management

Sherbs
Contributor Contributor
2,522 Views
5 Replies
Message 1 of 6

addin version management

Sherbs
Contributor
Contributor

Hi Folks,

 

Just wondering what some of your "best practices" are for managing add-in development against the various Revit APIs.

 

As our own projects have migrated from Revit 2014 up through and now including Revit 2018, I'm finding that the way I've been managing code bases is feeling a little clumsy.  We've since retired the app with respect to 2014 and 2015, but even supporting our addin against just 3 API versions is tedious.

 

The way I'm handling things now uses a combination of svn branching/tagging, and svn switching when I need to work on code built against various Revit API versions.  My mainline (trunk) code is currently tied to the latest Revit API version that we support, with branches tied to other versions of the API.

 

This has advantages and disadvantages, as I'm sure other strategies do as well.  The two biggest problems I have with the way  I'm doing things now are:

1)  messy merge - particularly with the .csproj files

2)  no obvious indication which branch (or trunk for that matter) is tied to my trunk directory after svn 'switching'.

 

Just kind of looking for ideas that might work better than what I'm doing.  Ideally what I'd like is to have a single VS solution with multiple projects in it - each targeting a different version of the API - but, to have that without having to duplicate any of the add-in code.  Try as I might, I've been unable to wrangle VS into a setup like this.

 

Thanks for any ideas!

0 Likes
Accepted solutions (1)
2,523 Views
5 Replies
Replies (5)
Message 2 of 6

Anonymous
Not applicable
Accepted solution
Message 3 of 6

Sherbs
Contributor
Contributor

Aha!

 

That could be exactly what I've been looking for!

 

Thanks so much!

-Greg-

 

0 Likes
Message 4 of 6

Dale.Bartlett
Collaborator
Collaborator

I have used this structure. It takes some time and care to set up initially, and you need to constantly compile all versions to be sure older ones are not getting broken with some new code. The suggested link is an excellent guide; the author is to be congratulated. Dale  




______________
Yes, I'm Satoshi.
Message 5 of 6

Sherbs
Contributor
Contributor

Yep.  It worked out perfectly in fact!

 

I wasn't aware that you could conditionally pull in referenced libraries - that made all the difference.

 

Accepted as solution.

Message 6 of 6

Troy_Gates
Advocate
Advocate

Just wanted to add, that in Visual Studio you can batch build your versions (its on the build menu). I use this to build 4 or 5 versions every time I build a project.