这是我想做的事情:

我想创建一个包含我的资源文件的库项目(即UI标签和诸如此类的东西)。我想在我的UI和测试中使用资源库。 (即,我从多个项目中引用的资源基本上都有一个共同的位置。)

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

不幸的是,这两种解决方案都使我无法保持强类型参考。

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

我宁愿避免使用构建事件来实现这一目标(即,做一些事情,比如将'内部'的所有实例替换为'public',但如果我可以的话,这基本上是我的后备计划找不到答案..

有帮助吗?

解决方案

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

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

VS 2005 - 你没有像VS 2008那样生成代码的选项。由于这个头痛,这是一个添加的功能。虽然有工作。您可以使用第三方生成器,如工具或您可以在AssemblyInfo中使用 InternalsVisibleTo 属性.cs添加可以访问资源库内部类的项目。

其他提示

Visual Studio 2008允许您选择生成的资源类是内部资源类还是公共资源类。还有 ResXFileCodeGeneratorEx ,它应该为Visual Studio 2005执行此操作。

从数据集设计器和可见的属性窗口,有一个“修改器”。属性。对于您的数据集,它可能是内部的。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top