引用解决方案中多个项目的资源文件

Jod*_*oda 8 c# localization resx

我正在为一个由几个项目组成的asp.net应用程序进行本地化.

为此,在一些项目中使用了一些字符串.当然,我希望每个项目中只有一个资源文件的副本.

由于资源文件没有命名空间(至少据我所知),它们不能像常规类一样被访问.

有没有办法在同一个解决方案中引用另一个项目中的resx文件?

Jon*_*jap 9

您可以创建一个类库项目,在那里添加资源文件,然后引用该程序集以获取公共资源.


Mar*_*ris 5

我之前使用过这个解决方案,在一个解决方案中的所有项目中共享一个汇编的info.cs文件,我认为这对于资源文件也是如此.

为每个单独的项目/类库创建链接文件.只有一个副本,每个项目在编译时都会通过链接文件引用代码.它是一种非常优雅的解决方案,可以解决共享的非公共资源而无需重复代码.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>
Run Code Online (Sandbox Code Playgroud)

将该代码添加到csproj文件的complile项组中,然后将路径替换为resx文件的实际路径,您就可以打开它们了.

为一个项目文件完成此操作后,您应该能够将链接文件复制并粘贴到其他项目,而无需破解csproj.