Howdy,
I'm having a sporadic problem with a C++ Builder 6 project, and I'm
hoping someone out there can help. What I'm trying to do is create a
program to generate a mass software release. This involves compiling
several dozen programs and delivering their results to a single output
directory. I have an application which opens a series of projects, changes
their output directories to one that the user specifies, compiles them, then
sets the output directories back to what they had been.
The problem I'm having is that when I apply this process certain
projects, consequent attempts to open the project fail with the error:
Rule for project "ABC.exe"" does not exist.
I can reproduce the problem outside my application by doing this:
Open a project that I know works, FMSAddressFileServer.exe.
Go to Project | Options | Directories/Conditionals.
Use the [...] button to select a Final Output directory, in my case "c:\FMS
Output".
Hit OK to close the Options.
Hit Save All at the base IDE to save the change. At this point everything
is hunky-dory.
Go back into Project | Options | Directories/Conditionals.
Hit OK without making any changes.
Hit Save All at the base IDE.
Select File | Close All to close the project.
Select File | Open Project to reopen the project.
The project open fails, reporting
Rule for project "FMSAddressFileServer.exe"" does not exist.
If I open the BPR in a text editor the <PROJECT> option is now:
<PROJECT value=""C:\FMS Output\FMSAddressFileServer.exe""/>
If I delete the last " the project opens but compilation fails with the
error message:
[Linker Error] Could not create "C:\FMS Output\FMSAddressFileServer.tds
(error code 123)
123 is INVALID_NAME, which makes sense due to the stray quote in the file
name.
I'm running Windows XP Professional and C++ Builder 6 Enterprise. The
modification of the output directory is done by setting the PROJECT value to
include the specified output path via the _di_IXMLDocument class in
XMLDoc.hpp.
Any suggestions would be appreciated, and thanks in advance.
Jody Bowman
XXXX@XXXXX.COM