Hi Paul,
> These tests crash on Vista with .NET 3.5 (not sure about other platforms/.NET
> versions yet). The enum_gac_assemblies function relies on the fact that
> ffd.cFileName contains 2 underscores. On Vista however I see some assemblies
> with a different format for the cFileName like:
>
> 6.0.0.0_en_31bf3856ad364e35
Yes, that test simply ignores the culture attribute. Is that one of your
own machines? If so, can you try this patch?
-Hans
diff --git a/dlls/fusion/tests/asmenum.c b/dlls/fusion/tests/asmenum.c
index 0349eb3..d30f20e 100644
--- a/dlls/fusion/tests/asmenum.c
+++ b/dlls/fusion/tests/asmenum.c
@@ -240,11 +240,20 @@ static BOOL enum_gac_assemblies(struct list *assemblies, int depth, LPSTR path)
}
else if (depth == 1)
{
- ptr = strstr(ffd.cFileName, "__");
+ static const char *culture, *neutral = "neutral";
+
+ ptr = strchr(ffd.cFileName, '_');
*ptr = '\0';
- ptr += 2;
- sprintf(buf, "Version=%s, Culture=neutral, PublicKeyToken=%s",
- ffd.cFileName, ptr);
+ ptr++;
+
+ if (*ptr != '_') culture = ptr;
+ else culture = neutral;
+
+ ptr = strchr(ptr, '_');
+ ptr++;
+
+ sprintf(buf, "Version=%s, Culture=%s, PublicKeyToken=%s",
+ ffd.cFileName, culture, ptr);
lstrcpyA(disp, parent);
lstrcatA(disp, buf);