[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Minor issue with VS.NET solution file generation (trunk)

From: Tim Van Holder <tim.van.holder_at_telenet.be>
Date: 2005-12-27 00:38:36 CET

Hi,

the VS.NET generator currently assumes that simply having the correct
file version (7.00/8.00/9.00) in the .sln file is enough. For VS2005,
this is not entirely true.
While the IDE is capable of opening such .sln file, they cannot be
opened from the shell; .sln files are scanned for content by a shell
extension so that the correct version of VS is launched for that
solution, allowing VS.NET2002/VS.NET2003/VS2005 to be installed side
by side. For some odd reason, that shell extension requires .sln files
to start with

  Microsoft Visual Studio Solution File, Format Version 9.00
  # Visual Studio 2005

and not just

  Microsoft Visual Studio Solution File, Format Version 9.00

which is what the generator currently generates.
A fix would be to always generate such a second line:

  Microsoft Visual Studio Solution File, Format Version 7.00
  # Visual Studio 2002

  Microsoft Visual Studio Solution File, Format Version 8.00
  # Visual Studio 2003

  Microsoft Visual Studio Solution File, Format Version 9.00
  # Visual Studio 2005

For 7.00 and 8.00, having such a second line prevents neither the IDE
nor the shell from opening it (confirmed for VS.NET2003, but not 2002
as I no longer have that installed).

Naive patch attached.

´╗┐Index: build/generator/gen_vcnet_vcproj.py
===================================================================
--- build/generator/gen_vcnet_vcproj.py (revision 17893)
+++ build/generator/gen_vcnet_vcproj.py (working copy)
@@ -176,6 +176,7 @@
 
     data = {
       'version': self.vsnet_version,
+ 'vsname' : self.vsnet_name,
       'targets' : targets,
       'configs' : configs,
       'platforms' : self.platforms,
Index: build/generator/vcnet_sln.ezt
===================================================================
--- build/generator/vcnet_sln.ezt (revision 17893)
+++ build/generator/vcnet_sln.ezt (working copy)
@@ -1,4 +1,5 @@
 Microsoft Visual Studio Solution File, Format Version [version]
+# [vsname]
 [for targets]Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "[targets.name]", "[targets.path]", "[targets.guid]"
 EndProject
 [end]Global
Index: build/generator/gen_win.py
===================================================================
--- build/generator/gen_win.py (revision 17893)
+++ build/generator/gen_win.py (working copy)
@@ -48,6 +48,7 @@
     self.junit_path = None
     self.swig_path = None
     self.vsnet_version = '7.00'
+ self.vsnet_name = 'Visual Studio.NET 2002'
     self.vsnet_proj_ver = '7.00'
     self.skip_sections = { 'mod_dav_svn': None,
                            'mod_authz_svn': None }
@@ -100,20 +101,20 @@
         self.configure_apr_util = 1
       elif opt == '--vsnet-version':
         if val == '2002' or re.match('7(\.\d+)?', val):
+ self.vsnet_name = 'Visual Studio.NET 2002'
           self.vsnet_version = '7.00'
           self.vsnet_proj_ver = '7.00'
- sys.stderr.write('Generating for VS.NET 2002\n')
         elif val == '2003' or re.match('8(\.\d+)?', val):
+ self.vsnet_name = 'Visual Studio.NET 2003'
           self.vsnet_version = '8.00'
           self.vsnet_proj_ver = '7.10'
- sys.stderr.write('Generating for VS.NET 2003\n')
         elif val == '2005' or re.match('9(\.\d+)?', val):
+ self.vsnet_name = 'Visual Studio 2005'
           self.vsnet_version = '9.00'
           self.vsnet_proj_ver = '8.00'
- sys.stderr.write('Generating for VS.NET 2005\n')
         else:
- sys.stderr.write('WARNING: Unknown VS.NET version "%s",'
- ' assumimg "%s"\n' % (val, self.vsnet_version))
+ sys.stderr.write('WARNING: Unknown VS.NET version "%s"\n' % val)
+ sys.stderr.write('Generating for %s\n' % self.vsnet_name)
 
   def __init__(self, fname, verfname, options, subdir):
     """

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Dec 27 13:14:16 2005

This is an archived mail posted to the Subversion Dev mailing list.