我正在为一个包含多个项目的 asp.net 应用程序进行本地化。
为此,其中一些项目中使用了一些字符串。自然,我希望每个项目中只有一个资源文件的副本。
由于资源文件没有命名空间(至少据我所知),它们不能像常规类一样被访问。
有没有办法在同一个解决方案中引用另一个项目中的 resx 文件?
我正在为一个包含多个项目的 asp.net 应用程序进行本地化。
为此,其中一些项目中使用了一些字符串。自然,我希望每个项目中只有一个资源文件的副本。
由于资源文件没有命名空间(至少据我所知),它们不能像常规类一样被访问。
有没有办法在同一个解决方案中引用另一个项目中的 resx 文件?
您可以只创建一个类库项目,在其中添加一个资源文件,然后参考该程序集以获取公共资源。
我之前曾使用此解决方案在解决方案中的所有项目中共享一个 assembley info.cs 文件,我认为这对资源文件也适用。
为每个单独的项目/类库创建一个链接文件。只有一个副本,每个项目都会在编译时通过链接文件引用代码。它是一个非常优雅的解决方案,可以在不重复代码的情况下解决共享的非公共资源。
<Compile Include="path to shared file usually relative">
<Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>
将该代码添加到 csproj 文件的编译项组中,然后将路径替换为 resx 文件的实际路径,然后您就可以打开它们了。
为一个项目文件完成此操作后,您应该能够将链接文件复制并粘贴到其他项目,而无需破解 csproj。
此处提供了有关如何管理此类情况的一些有用建议: