跨解决方案在不同项目中将资源 (Resx) 文件共享为链接项

Sharing Resource (Resx) file as a linked item in different projects across solution

我有一个名为 'MyApplication' 的解决方案,有两个项目:

ProjectA(命名空间MyApplication.ProjectA){.Net Core 2.1} ProjectB(命名空间MyApplication.ProjectB){.Net Core 2.1 测试项目}

ProjectA 包含一个名为 'Messages.resx'.

的资源文件

我在 ProjectB 中有 Messages.resx Add As Link,每当我从 ProjectB 中的 Messages.resx 读取值时,它都会抛出 System.Resources.MissingManifestResourceException。 我不想在 ProjectB 中直接引用 ProjectA。另外添加第三个带有资源文件的库项目并在 ProjectA 和 ProjectB 中引用它不是一个选项。 如何将资源添加为 Add As Link 并使用它?

比如我有两个mvc项目:WebApplication1和WebApplication3。

我在 WebApplication3 中有一个资源文件(MyData.resx):

MyData.resx:

现在,根据您的需要,我在 WebApplication1 中 MyData.resx 添加为 link:

然后,我可以从 WebApplication1 控制器中的 .rexs 文件中获取数据,如下所示:

 public IActionResult Index()
    {
        var rm = new ResourceManager("WebApplication1.Resources.MyData", Assembly.GetExecutingAssembly());
        string username = rm.GetString("Username");
        return View();
    }

结果:

注意:ResourceManager中的baseName应该是当前项目的命名空间。