That's the end result I want, but I need it to be automatic.
My project uses custom targets to build files other than assemblies. You could think of them like satellite resource files -- they don't contain code, but they are binary files that are required by my application.
As an example, let's imagine a very simple case where I might have a target like this:
<Target Name="BuildCustomFileFoo">
<
WriteLinesToFile
File="Foo.abc"
Lines="@(SomeDataFromVariousInputFiles)"
Overwrite="true"/>
</Target>
This file (Foo.abc) is built by my project, and I want to deploy it when I deploy my application. I don't want to add the file to my project because my project could be under source code control, and having build outputs in SCC is never a good idea. Also, I would have to do this for every file that I generate, and there may be thousands of them for my project type. I would also need to keep them in sync when I changed the name of the input files, etc.
What I would like to know is how to tell the Publish target that it should include "Foo.abc" in the application manifest when it builds the application manifest, and also to display Foo.abc the IDE when the user clicks on the Application Files... button on the Publish page. I'm certain that I can do this through msbuild, but the Publish targets are undocumented.
I got some pointers today from Dave Templin (who wrote a bunch of the original ClickOnce msbuild tasks), and I think I understand what to do now. I'll post back if I get it working.
Thanks,
--Stephen