For a few months, I was building the solution, copying DLLs into an EmbeddedAssemblies folder and then rebuilding the project. It was really painful because I had to write a .bat file that would call MSBuild on my entire .sln, then do an XCOPY
and then call MSBuild on the .csproj.
Worse, because I have no control over how TFS ignores files, source control was constantly seeing these files as changing and I had to explicitly Exclude them from check-ins. My teammates were usually not so considerate.
Ultimate, I took another look at ILMerge. Internally, it is pretty much doing the exact same thing I was. I switched over to ILMerge and I've been happier ever since.