Question

I am working on localization for a asp.net application that consists of several projects.

For this, there are some strings that are used in several of these projects. Naturally, I would prefer to have only one copy of the resource file in each project.

Since the resource files don't have an namespace (at least as far as I can tell), they can't be accessed like regular classes.

Is there any way to reference resx files in another project, within the same solution?

Was it helpful?

Solution

You can just create a class library project, add a resource file there, and then refer to that assembly for common resources.

OTHER TIPS

I have used this solution before to share a assembley info.cs file across all projects in a solution I would presume the same would work fro a resource file.

Create a linked file to each individual project/class library. There will be only one copy and every project will have a reference to the code via a linked file at compile time. Its a very elegant solution to solve shared non public resources without duplicating code.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>

add that code to the complile item group of a csproj file then replace the paths with your actual paths to the resx files and you sould be able to open them.

Once you have done this for one project file you should be able to employ the copy & paste the linked file to other projects without having to hack the csproj.

Some useful advice on how to manage a situation like this is available here:

http://www.codeproject.com/KB/dotnet/Localization.aspx

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top