Multiple components in a single Visual Studio solution
Im new to Jazz so I apologize if my terminology is incorrect. I want have a single Visual Studio solution that has multiple FTC components. Yes, these really are separate components and yes, I realize that a lot of people would not consider it appropriate to have them in the same solution. However, unit testing only takes you so far and it makes it
So far I have only figured out a hack to do this. Below is a detailed description of how I got it to work. I was hoping there would be an easier way to do this.
2) Create a subfolder for a single FTC component. (C:\Development\MySolution\MyComponent1) 3) Create a solution for that component. (C:\Development\MySolution\MyComponent1\MyComponent1.sln) 4) Add the project(s) to that component solution (C:\Development\MySolution\MyComponent1\MyProject1\MyProject1.csproj) 5) Use Share Project(s) in Jazz in Visual Studio to add the solution and projects to FTC. 6) Check in the solution and accept the pending changes. 7) Repeat steps three to six for each component I want in my big solution. 8) Create a sub directory for my big solution. (C:\Development\MySolution\Solution) 9) Create my big solution. (C:\Development\MySolution\Solution\MySolution.sln) 10) Use Share Project(s) in Jazz in Visual Studio to add the solution to FTC. 11) Add each of the projects to my big solution. 12) Check in the big solution and accept the pending changes. Here are a few problems I ran into that made me go down that convoluted path:
When I started using the procedure described above, I found that if I didnt put each component in a separate directory, they would automatically use the same FTC component. It seems that a single directory can only contain files from a single component. So, I end up with a solution\project structure like this:
C:\Development\MySolution\MyComponent1\MyComponent1.sln C:\Development\MySolution\MyComponent1\MyProject1\MyProject1.csproj C:\Development\MySolution\MyComponent1\MyProject2\MyProject2.csproj C:\Development\MySolution\MyComponent1\MyProject3\MyProject3.csproj C:\Development\MySolution\MyComponent2\MyComponent2.sln C:\Development\MySolution\MyComponent2\MyProject4\MyProject4.csproj C:\Development\MySolution\MyComponent2\MyProject5\MyProject5.csproj C:\Development\MySolution\MyComponent2\MyProject6\MyProject6.csproj when all I really want is this:
C:\Development\MySolution\MyProject1\MyProject1.csproj C:\Development\MySolution\MyProject2\MyProject2.csproj C:\Development\MySolution\MyProject3\MyProject3.csproj C:\Development\MySolution\MyProject4\MyProject4.csproj C:\Development\MySolution\MyProject5\MyProject5.csproj C:\Development\MySolution\MyProject6\MyProject6.csproj As I am typing this, Im starting to reconsider the wisdom of setting it up without a subdirectory for each component. However, Im still curious if it is possible to do it that way. My main frustration is that all projects want to inherit the FTC component from the solution. |
3 answers
I discovered an article (Source Controlling Projects and Solutions in Team Concert for Visual Studio) that answered most of my questions. Were there any big changes between v1.0 and v2.0 on how to use RTC in Visual Studio?
|
There were no changes at all wrt our guidelines wrt solutions and components from 1.0 to 2.0.
The team that developed the RTC Client for VS studio is a team of VS developers as well, and we ran into a situtation similar to yours, where it was much easier for us to run our unit tests if all our component projects belonged to the same solution. So we used the partitioned solution approach. In your case, MyComponent1, MyComponent2 would all have their own solutions which would be shared against individual components. Each solution would include projects from other solution as "existing project"s. This way you'd always have the latest source code in all your components and that's the way RTC recommends you do it as well. You would also have a sort-of umbrella solution that you would use for making sure your components build with each other and that would include all projects from all solutions in it - that's where you could have all your unit tests. This could be shared against an additional component named say "FTC" or something that makes sense to you. So your solution structure would look like this: C:\Development\MySolution\FTC\FTC.sln (umbrella solution for integration builds and unit tests, including projects from all component solutions) C:\Development\MyComponent1\MyComponent1.sln C:\Development\MyComponent2\MyComponent2.sln and so on. So all solutions are at the same level in the folder hierarchy - whether they're component solutions or the one you defined for integration builds/unit tests. I discovered an article (Source Controlling Projects and Solutions in Team Concert for Visual Studio) that answered most of my questions. Were there any big changes between v1.0 and v2.0 on how to use RTC in Visual Studio? |
Thanks for the response, I really appreciate it. It's nice to know we were thinking about it the same way as the experts.
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.