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