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

C# 从解决方案中的多个项目引用资源文件,c#,localization,resx,C#,Localization,Resx,我正在为一个由几个项目组成的asp.net应用程序进行本地化 为此,在其中几个项目中使用了一些字符串。当然,我更希望每个项目中只有一份资源文件 因为资源文件没有名称空间(至少据我所知),所以不能像普通类那样访问它们 有没有办法在同一解决方案中引用另一个项目中的resx文件?有关如何管理此类情况的一些有用建议,请参见: 您只需创建一个类库项目,在那里添加一个资源文件,然后参考该程序集以获取公共资源。我以前使用过此解决方案,在解决方案中跨所有项目共享assembley info.cs文件。我想,在资

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

为此,在其中几个项目中使用了一些字符串。当然,我更希望每个项目中只有一份资源文件

因为资源文件没有名称空间(至少据我所知),所以不能像普通类那样访问它们


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

有关如何管理此类情况的一些有用建议,请参见:


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

我以前使用过此解决方案,在解决方案中跨所有项目共享assembley info.cs文件。我想,在资源文件中也同样适用

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

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

Visual Studio到Dispaly.resx的文件名
将该代码添加到csproj文件的complile项目组中,然后用resx文件的实际路径替换这些路径,您应该能够打开它们


对一个项目文件执行此操作后,您应该能够将链接文件复制并粘贴到其他项目,而无需对csproj进行黑客攻击。

好的!我还必须将链接的构建操作从
Compile
更改为
Embedded Resource
,这样VS就不会尝试编译XML。