Author |
Topic  |
|
lac
Senior Member
  
30 Posts |
Posted - Mar 07 2013 : 05:37:57 AM
|
We have projects and solution files that are regularly changed by external tools, e.g. by updating from source control, or by re-running CMake that generates the solutions.
It seems that VAX does not pick up changes to these files, if sources files are added or removed. Added files do not appear in "Open file in solution" if solution is reloaded due to external changes. Removed files are still found. |
|
feline
Whole Tomato Software
    
United Kingdom
19187 Posts |
Posted - Mar 07 2013 : 09:50:46 AM
|
Is the solution being changed while the IDE is open, or while it is closed? Are the changes being picked up after closing and reloading the IDE and the solution? |
zen is the art of being at one with the two'ness |
 |
|
lac
Senior Member
  
30 Posts |
Posted - Apr 02 2013 : 07:05:55 AM
|
The changes are being done while the IDE is open. However, the problem persist both if the solution is loaded, and if it is unloaded first. Reloading the solution does not make VAX detect the added/removed files. Closing the IDE and reopening does. |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19187 Posts |
Posted - Apr 02 2013 : 9:33:43 PM
|
Which IDE and version of VA are you using?
Is the modified date and time on the project files being updated when they are changed? I would expect it to be updated, but its best to ask and check. |
zen is the art of being at one with the two'ness |
 |
|
lac
Senior Member
  
30 Posts |
Posted - Apr 03 2013 : 02:07:39 AM
|
Using Visual Studio 2010 SP1. VAX 1929. Yes, modification time is update. If the solution is loaded while the update happens, Visual Studio begin reloading the workspace and projects (changes still not picked up by VAX). |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19187 Posts |
Posted - Apr 03 2013 : 11:50:29 AM
|
Which OS are you using? Is this a 32bit or 64bit OS?
I have set up a simple test here with VS2010, VA 1929 under Windows XP, backing up the .vcproj file after adding a couple of new files to a test project, and then restoring the original .vcproj file.
I opened the original solution / project, and the expected files were listed. I then use a file manager to copy the new .vcproj file, with two new files added, overwriting the current .vcproj file, while the IDE was open.
VS2010 produced a dialog, telling me the project had been modified outside of the environment, and asking me what I wanted to do. I selected reload. All open files in the IDE were closed. A few seconds later the two new files are correctly listed in VA's Open File dialog.
I have uploaded a zip of my test project here:
http://forum.wholetomato.com/colin/forumimages/topic11277_project_change_test.zip
can you please download and open this solution on your system. When you first open the project VA will list 5 files in the open file dialog.
If you look with a file manager, inside the project directory "project_change_test" there are 3 backup folders:
base_project - the current state step1_2_files_added - the project with 2 files added, "new_code.cpp" and "new_header.h" step2_1_file_removed - the project with the file "new_header.h" removed
can you try copying the .vcproj file across and see what results you are getting? I backed up the filters and user files as well, but I am not currently copying them across.
Both adding and removing files works correctly for me, no need to reload the solution or the IDE. |
zen is the art of being at one with the two'ness |
 |
|
lac
Senior Member
  
30 Posts |
Posted - Apr 04 2013 : 02:24:44 AM
|
I'm sorry, I have overstated this issue. I can't reproduce with your example, nor can I reproduce with a minimal example of my own using CMake. Changes during reloaded (VS detecting a change) are picked up by VAX as expected.
I was only able to reproduce using a macro, which I was using to refresh the projects. For your example, this reproduces on my system (Win7 64bit):
Sub ReplaceProject()
Dim Name As String = DTE.Solution.FullName
DTE.Solution.Close()
Dim Folder = FolderFromPath(Name)
DTE.Solution.Close()
FileCopy(Folder + "project_change_test\\step1_2_files_added\\project_change_test.vcxproj", Folder + "project_change_test\\project_change_test.vcxproj")
DTE.Solution.Open(Name)
End Sub
I was using a similar macro to close the project, run CMake, the reload the same project, to avoid having to accept reloading 30+ projects individually.
Can't reproduce by unloading manually, running CMake, the reloading via menu.
Since macros are gone in VS2012, you can ignore this issue. I'll manage :-) |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19187 Posts |
Posted - Apr 04 2013 : 1:07:21 PM
|
Ah, thank you for the update, its good to know what was happening here, and why this was not working for you. |
zen is the art of being at one with the two'ness |
 |
|
|
Topic  |
|