Fix the longstanding side-by-side assembly issue on WIndows (aka mysterious .NET 3.5 framework dependency)

This commit is contained in:
rdb 2009-12-25 18:39:42 +00:00
parent 940265ffcb
commit e3d7240d92
1 changed files with 7 additions and 0 deletions

View File

@ -757,10 +757,16 @@ def GetThirdpartyDir():
########################################################################
##
## Visual Studio Manifest Manipulation.
## These functions exist to make sure we are referencing the same
## version of the VC runtime in the manifests that we are shipping
## with Panda3D, to avoid side-by-side configuration errors. Also,
## it also removes any dependency the VC80 CRT (as we only want to
## depend on the VC90 CRT).
##
########################################################################
VC90CRTVERSIONRE=re.compile("name=['\"]Microsoft.VC90.CRT['\"]\\s+version=['\"]([0-9.]+)['\"]")
VC80CRTASSEMBLYRE=re.compile("<dependency>[\t \n]*<dependentAssembly>[\t \n]*<assemblyIdentity[\t \na-zA-Z0-9.'\"=]*name=['\"]Microsoft[.]VC80[.]CRT['\"][\t \na-zA-Z0-9.'\"=/]*>[\t \n]*(</assemblyIdentity>)?[\t \n]*</dependentAssembly>[\t \n]*</dependency>[\t \n]*")
VC90CRTVERSION=None
def GetVC90CRTVersion(fn = None):
@ -784,6 +790,7 @@ def SetVC90CRTVersion(fn, ver = None):
manifest = ReadFile(fn)
subst = " name='Microsoft.VC90.CRT' version='"+ver+"' "
manifest = VC90CRTVERSIONRE.sub(subst, manifest)
manifest = VC80CRTASSEMBLYRE.sub("", manifest)
WriteFile(fn, manifest)
########################################################################