8

我正在为一个包含多个项目的 asp.net 应用程序进行本地化。

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

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

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

4

3 回答 3

11

您可以只创建一个类库项目,在其中添加一个资源文件,然后参考该程序集以获取公共资源。

于 2008-09-02T09:16:56.497 回答
5

我之前曾使用此解决方案在解决方案中的所有项目中共享一个 assembley info.cs 文件,我认为这对资源文件也适用。

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

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

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

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

于 2008-09-02T10:16:03.593 回答
4

此处提供了有关如何管理此类情况的一些有用建议:

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

于 2008-09-02T09:13:17.410 回答