Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 180
  • Last Modified:

Delphi's IDE start to have a strange behavior

Hi,

We are up to 6-7 programmers which work remote on a server where is installed Delphi7. Projects, or project groups in work are updated Turtoise SVN. All delphi projects are setted up in each user's My Documents folder. The issue is that some users compile without a problem projects, but other users got errors like:

'File .... was compiled with another version of .....'

I rewrote one user's dcu files with the same dcu file from a user which can compile and build but without success. I'm out of ideas.

Can anyone give me some advices?

Best regards
0
radu84
Asked:
radu84
  • 8
  • 6
  • 6
2 Solutions
 
Geert GruwezOracle dbaCommented:
Are you using compiler directives in common code between projects ?

example:
Project1 - UnitCommonA - other units
was compiled with a compiler directive X (Project options of Project1)

Project2 - UnitCommonA - other units
was compiled with a compiler directive Y (Project options of Project2)

if you hit compile (CTRL-F9) on project 2 you will get this warning
Building project 2 (Menu Project / Build ) will recompile UnitCommonA with compiler directive Y
and the error will be resolved

But not for Project1

This can be the case too with different Delphi versions / Update packs.

0
 
radu84Author Commented:
Geert,

Units are compiled in the same manner by all the users. There are no differences between users. If i work on a project i update to server the files using SVN. The next programmer is 'downloading' the project and start to work on it.

Also all the users have set up the paths to packages in IDE.

For example 2 users can compile in their accounts Project A(for example) and other 2 user retrieve that error: 'file...was compiled with another version of ....'.

Can some one give a link or some explanations how ide is working on multiusers?

Best regards,
0
 
Geert GruwezOracle dbaCommented:
you may need to clarify your situation a bit more ...

are you using terminal services ?


0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
radu84Author Commented:
You're correct, we connect to server through Remote Desktop, each user a part.

Best regards,
0
 
Geert GruwezOracle dbaCommented:
Never used Delphi this way.

What happens if the user getting the error does a Project / Build
This should allways work.

Have you checked for compiler directives ?
0
 
radu84Author Commented:
Get the same error. As I told you before, all the projects are compiled/build in the same manner. No differences are made from a user to another, there aren't other compiler directives.

Best regards,
0
 
Geert GruwezOracle dbaCommented:
do i understand it correctly that you check in dcu files too ?
if so, this shouldn't be necessary.

does deleting the dcu files and then compiling work ?

0
 
radu84Author Commented:
No, i recompiled all packages used in project group, it worked ok. When i tried to compile one of the projects from group it is raising this error.

Best regards,
0
 
2266180Commented:
obviously some of the users have other versions of the problematic dcus somewhere in their paths. so why not do a full hardisk search on *.dcu and see what is where. it will take a while to go through the result list but if you find the same unit in 2 places, you can ask yourself why is that and remove the bad one.
0
 
2266180Commented:
note, you can also try first by seaerching for the dcu's involved like
whatever.dcu compiled with a different version of soemthing.dcu
search for whatever.dcu and something.dcu and see which one is in multiple instances.
again, the search should be in all paths, that includes the harddisk and any network folders you might be using.
0
 
radu84Author Commented:
Ciuly,

thanks for response. Each user have it's own folder structure which include a DCU folder. I've already done what you're suggesting. There are no differences between dcu files. also when a user is updating sources(to/from) server dcu files are not send.

up i wrote that i overwrite dcu's of a problematic user with the dcu's from a user which can compile, and the result is the same.

Other ideas?

Best regards,
0
 
Geert GruwezOracle dbaCommented:
you are using a project group ...
what are the project group options ?

go to menu Project / View Project manager
look at the Project group options

does it use any directories not in MyUsers folders ?

my thought is that some projects use directories not in the MyUsers folders
so check each project options for directories that are shared
and make them local to the user
0
 
Geert GruwezOracle dbaCommented:
deleting the DCU's should rebuild it at compile for that specific user

do you what DCU's ?
0
 
2266180Commented:
>> I've already done what you're suggesting

I really doubt you did what I said. on the same machine, building a project by 2 different users yelding that one dcu is compiled with another version, means there are at least 2 versions of that dcu on the system. so you didn't do the complete search.
0
 
radu84Author Commented:
Resolved it, overwrote all problematic users .dcu files with same dcu files from an user which can compile.

Thanks and best regards
0
 
2266180Commented:
since you say that overwriting the problematic dcu with other dcus that worked fixes the problems, it is obvious that you had more than one version of the problematic dcu on your system, which backs up my supposition and hence supports my suggestion of searching the entires system for the problematic dcus.

in this light, giving a B grade is inapproriate. it is not my fault that you cannot follow simple recommentations to track down the real problem and thus preventing it from happening again. guess you are one of those guys whom when having had problems with windows, preffer to format c: and reinstall. which is what you did with overwriting dcus. you didn't care what the actual problem was, and try to prevent it from happening again, you took the raw solution. it's nothing bad in it, but giving a B grade because of that is bad.

so ...other experts here know what will happen. I'm not allowed to say it, netminder would get pissed. enjoy it.
0
 
Geert GruwezOracle dbaCommented:
How does Delphi compile a .pas file
first look for a .dcu file
it it finds one, compares the date to the .pas date
otherwise compiles the .pas (+ .dfm)

so if you still have the issue deleting the .dcu
then you didn't delete the correct .dcu

after you deleted the .dcu, does it reappear in that directory ?

do you check in/out the project group file (.bpg)

do you check in/out the separate project files (.dpr)

this will not resolve the issue

have you ever seen the film ice age 2 ?
there is this little squirrel in the beginning using his finger to plug the hole in the ice wall dam
after taking out the chestnut, next he has to use an other finger,
then his toe, then his other hand.
Next he stuffs his mouth in the wall and gets shot away ...

You're using the same approach
We proposed to drop the water level behind the wall
It's just a matter of time before the developpers get fed up asking you to copy

check your directories !!!

please read the instructions for grading answers and asking questions
http://www.experts-exchange.com/help.jsp#hs29
0
 
2266180Commented:
>> this will not resolve the issue

you forgot to ask about the dof and cfg where the project paths (and other config) are stored ;)
0
 
Geert GruwezOracle dbaCommented:
oh yeah and the .res too
0
 
2266180Commented:
that's not so important in this case. it only contains resources (ico, version, etc) other than dfm (which is added separately at link time in the binary)
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 8
  • 6
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now