有没有办法使强类型资源文件公开(而不是内部)



这是我想做的:

我想创建一个包含我的资源文件(即 UI 标签等)的库项目。然后,我想在我的 UI 和测试中使用资源库。(即,基本上有一个公共位置来放置我从多个项目中引用的资源。

不幸的是,由于 StronglyTypedResourceBuilder(为资源生成代码的 .Net 类)默认将资源文件设置为内部文件,因此我无法从另一个项目(即我的 UI 或测试)引用库中的强类型资源,而无需跳过箍(即,类似于此处描述的内容,或编写公共包装类/函数)。

不幸的是,这两种解决方案都消除了我保持引用强类型的能力。

有没有人找到一种直接的方法来创建可以从多个项目引用的强类型.Net资源?

我宁愿避免使用构建事件来完成此操作(即,做一些事情,例如将"内部"的所有实例替换为"公共",但如果我找不到答案,这基本上是我的后备计划。

不确定您使用的是哪个版本的Visual Studio,因此我将为其中任何一个提供步骤:

VS 2008 - 当您在设计视图中打开 resx 文件时,顶部的"添加资源"和"删除资源"旁边有一个选项,称为"访问修饰符",它是一个下拉列表,您可以在其中将生成的代码从内部更改为公共。

VS 2005 - 您没有像VS 2008那样生成代码的选项。 由于这种头痛,这是一个添加的功能。 不过有解决方法。 您可以使用像此工具这样的第三方生成器,也可以使用 AssemblyInformation 中的 InternalsVisibleTo 属性.cs添加将有权访问资源库的内部类的项目。

>Visual Studio 2008 允许您选择生成的资源类应该是内部的还是公共的。还有ResXFileCodeGeneratorEx,它应该为Visual Studio 2005做到这一点。

在数据集设计器中,在属性窗口可见的情况下,有一个"修饰符"属性。 对于您的数据集,它可能说是内部的。

我不知道是否有将所有新数据集默认为公共的设置。

最新更新