{
this.isGlobal = true;
this.files = new AppResourceFilesCollection (context);
- this.cultureFiles = new Dictionary <string, List <string>> ();
+ this.cultureFiles = new Dictionary <string, List <string>> (StringComparer.OrdinalIgnoreCase);
}
public AppResourcesCompiler (string virtualPath)
this.virtualPath = virtualPath;
this.isGlobal = false;
this.files = new AppResourceFilesCollection (HttpContext.Current.Request.MapPath (virtualPath));
- this.cultureFiles = new Dictionary <string, List <string>> ();
+ this.cultureFiles = new Dictionary <string, List <string>> (StringComparer.OrdinalIgnoreCase);
}
static Assembly LoadAssembly (string asmPath)
try {
bp.GenerateCode (abuilder);
} catch (Exception ex) {
- if (String.Compare (bvp, vpabsolute, stringComparer) == 0)
+ if (String.Compare (bvp, vpabsolute, stringComparer) == 0) {
+ if (ex is CompilationException)
+ throw;
+
throw new HttpException ("Code generation failed.", ex);
+ }
+
if (failedBuildProviders == null)
failedBuildProviders = new List <BuildProvider> ();
failedBuildProviders.Add (bp);
+2010-01-05 Marek Habersack <mhabersack@novell.com>
+
+ * BuildManager.cs: in GenerateAssembly, if compilation fails for
+ the requested path and exception thrown is of type
+ CompilationException, do not wrap it in HttpException, just
+ rethrow.
+
+ * AppResourcesCompiler.cs: the culture files dictionary is
+ case-insensitive now. Otherwise culture files with culture name
+ cased differently will cause overlapped i/o on response files
+ while building satellite assemblies and, in effect, compilation
+ will fail.
+
2009-12-14 Marek Habersack <mhabersack@novell.com>
* BuildManager.cs: RemoveFailedAssemblies ignores warnings to