asp.netlocalization.net-assemblyweb-deployment-projectapp-globalresources

Localization of Custom Controls in a redistributable assembly


I'm trying to build a redistributable assembly containing several custom controls (CommonControls). My environment: MSVC 2010, ASP.NET (WebForms) .NET 2.0/3.0/3.5

The problem: Compiling everything with a Web Deployment Project won't work if I localize CommonControls via App_GlobalResources.

Here is how I build the CommonControls assembly:

I use a WebSite containing the .ascx and .ascx.cs files:

Solution explorer

and a Web Deployment Project with the following settings:

Web Deployment Project settings (CommonControls)

This will create "CommonControls.dll". That assembly is to be used in a different ASP.NET WebApplication as follows:

web.config: web.config

First (minor) problem: Adding CommonControls as a dependency will not automatically copy the satellite assemblies for the languages. Copying them manually to the correct output path seems to work though (for DEBUGGING).

Main problem: The Main web application is also localized via App_GlobalResources and built with a Web Deployment Project:

Web Deployment Project settings ("Main")

That build process will fail with

ASPNETCOMPILER : error ASPRUNTIME: Object reference not set to an instance of an object.

Both deployment projects create a file named "bin\App_GlobalResources.compiled" and I guess those 2 files cannot coexist peacefully within the same output-project.

Is there any elegant solution to localize both CommonContols AND Main using ASP.NET built-in localization?

Note: The project I'm working on has to be compatible with Apache+Mono, so my project-settings (screenshots above) must be exactly like this to work correctly (already tested all other variations).


Solution

  • I fixed it. It was (probably) caused by outdated assemblies in the Bin folder used by the WDP (seems to be a good idea to manually clean that folder from time to time).

    I also copied files from "CommonControls\Bin" to the final output (via pre-build event) which is not necessary and causes everything to break (satellite assemblies for translations are automatically copied by MSVC).

    While my problem+solution might not be that helpful to others, it's at least a tutorial how to build a re-distributable assembly with some custom-controls out of a bunch of user-controls.

    Notes: