这是我想做的事情:
我想创建一个包含我的资源文件的库项目(即UI标签和诸如此类的东西).我想在我的UI和测试中使用资源库.(即,我从多个项目中引用的资源基本上都有一个共同的位置.)
不幸的是,因为StronglyTypedResourceBuilder(生成资源代码的.Net类)默认使资源文件成为内部资源,所以我无法从另一个项目(即我的UI或测试)中引用库中的强类型资源,而不会跳转通过箍(即类似于此处描述的内容,或编写公共包装类/函数).
不幸的是,这两种解决方案都失去了我保持引用强类型的能力.
有没有人找到一种直接的方法来创建可以从多个项目中引用的强类型.Net资源?
我宁愿避免使用构建事件来实现这一目标(即,做一些事情,比如用'public'替换'internal'的所有实例,但如果我找不到,这基本上是我的后备计划一个答案..
不确定您使用的是哪个版本的Visual Studio,因此我将为两个版本添加步骤:
VS 2008 - 当您在设计视图中打开resx文件时,在Add Resource和Remove Resource旁边的顶部有一个选项,名为Access Modifier,它是一个下拉列表,您可以在其中将生成的代码从内部更改为公共.
VS 2005 - 您没有像VS 2008那样生成代码的选项.由于这个头痛,这是一个添加的功能.虽然有工作.您可以使用此工具之类的第三方生成器,也可以使用AssemblyInfo.cs中的InternalsVisibleTo属性添加可以访问资源库内部类的项目.