{
maxVersion = getMaxVersion( vendorVersions );
}
catch ( InvalidVersionFormatException e )
{
throw new PlatformUnsupportedException( "NPANDAY-xxx-000: Invalid version format", e );
}
for ( VendorInfo vendorInfo : vendorInfos )
{
if ( vendorInfo.getVendorVersion().equals( maxVersion ) )
{
File sdkInstallRoot = getSdkInstallRootFor( vendorInfo );
File gacRoot = new File( sdkInstallRoot.getParentFile().getAbsolutePath() + "/lib/mono/gac" );
if ( !gacRoot.exists() )
{
throw new PlatformUnsupportedException(
"NPANDAY-xxx-000: The Mono GAC path does not exist: Path = " +
gacRoot.getAbsolutePath() );
}
return gacRoot;
}
}
//TODO: MONO Support for Linux (Separate file containg installs)
}
}
else if ( artifactType.equals( ArtifactType.GAC.getPackagingType() ) )
{
return new File( System.getenv("SystemRoot"), "\\assembly\\GAC\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_32.getPackagingType() ) )
{
return new File(System.getenv("SystemRoot"), "\\assembly\\GAC_32\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_32_4.getPackagingType() ) )
{
return new File(System.getenv("SystemRoot"), "\\Microsoft.NET\\assembly\\GAC_32\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_64.getPackagingType() ) )
{
return new File(System.getenv("SystemRoot"), "\\assembly\\GAC_64\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_64_4.getPackagingType() ) )
{
return new File(System.getenv("SystemRoot"), "\\Microsoft.NET\\assembly\\GAC_64\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_MSIL.getPackagingType() ) )
{
return new File( System.getenv("SystemRoot"), "\\assembly\\GAC_MSIL\\" );
}
else if ( artifactType.equals( ArtifactType.GAC_MSIL4.getPackagingType() ) )
{
return new File( System.getenv("SystemRoot"), "\\Microsoft.NET\\assembly\\GAC_MSIL\\" );
}
throw new PlatformUnsupportedException("NPANDAY-200-002: Could not locate a valid GAC");
}