Search all sub-folders for <solutionNameNoExtension>.Deployment.btdfproj


In the DeploymentFramework.VisualStudioAddIn.Util.GetDeploymentProjectPath method, it would be good if the solution searched all subfolders below the solution file for the <solutionNameNoExtension>.Deployment.btdfproj

If I structure my code in folders as I would like them to be, when running the BTDF Visual Studio menu\toolbar options, I get the error message:

_“Could not find a .btdfproj file for this solution. Valid locations relative to the solution root are: <solutionNameNoExtension>.Deployment\<solutionNameNoExtension>.Deployment.btdfproj,
<solutionNameNoExtension>.Deployment\Deployment.btdfproj, Deployment\<solutionNameNoExtension>.Deployment.btdfproj
or Deployment\Deployment.btdfproj.",_

I would be keen to have all my BizTalk application solution files in a root folder with code for these different BizTalk applications in sub-folders that don’t match what BTDF currently requires.
This <solutionNameNoExtension>.Deployment.btdfproj files would still be unique across the folder structure.


tfabraham wrote Jul 18 at 4:16 AM

Hi Charlie,

Thanks for the feedback. It was implemented with those limitations for performance reasons and to keep the implementation simple. The add-in doesn't track the location of the .btdfproj(s) as the state of the solution and its projects changes. As a result, the search happens every time a BTDF command begins. The limitations ensure that the repeated search time is negligible. The ultimate solution is still the most complex (by far) -- a full blown custom project type. I'll track this on the backlog.


charliemott wrote Jul 18 at 11:11 AM

Thanks for the response. I would personally accept some (not a lot) performance drop in BTDF to support my ideal source code structure for BizTalk solutions. I am keen to maintain just a single copy of the following files across all our BizTalk application solutions. These files need to reside in the same file as the solution file.

.DotSettings (Resharper)

I did look into some TFS source control mechanism of synchronising these files in multiple folders. But this does not seem to exist in TFS (https://stackoverflow.com/questions/17433932/tfs-check-out-in-different-folders-at-once).

tfabraham wrote Jul 24 at 8:34 PM

I've packaged some of those same files in one or more custom, internal NuGet packages, so that they can be easily shared and centrally managed in source control. It worked very well. Even if your BizTalk version doesn't support NuGet packages in the projects, you can always add custom steps in the project to call NuGet.exe.