The other thing to realize is that writing to a CD is different than writing to a hard drive.
When you write to a hard drive there is a process of write, check that what was written is good, rewrite if it isn't good, continue to next chunk of data if it is good.
With CD you can't do that because you don't get to erase and write-over a block if it doesn't write correctly the first time.
That's why programs such as NERO will buffer ahead a large amount of the data to be written so the writing process can continue in one smooth uninterrupted flow.
I just suspect that trying to publish directly to a blank CD isn't going to give you that uninterrupted flow of data. Visual Studio is going to think, then write, then think some more, then write... It has to compile your primary outputs, and compile your installer, copy over resources from other areas like sounds, images and icons. I wouldn't be at all surprised if it compiles some portions of your finished solution, then jumps to other portions, then back to first portions so it can fill in the blanks in the first portion with values from the second portion. Since you can't jump around in the writing of a CD... it would fail.
Joedeene's response of writing to hard drive then burning as many CD's as you need is probably the only way it *CAN* work.