我有一个xml文件作为Project_A中的嵌入式资源。我可以在同一解决方案中访问另一个项目的嵌入式资源吗?
我想从Project_B中引用Project_A来访问此嵌入式资源。
(基本上Project_B包括单元测试,我用ReSharper的运行它们。)
是否有可能当我在Project_B工作访问Project_A的嵌入式资源?
或者一般情况下,我可以在同一解决方案中使用另一个项目中的其他项目的嵌入式资源吗?
我有一个xml文件作为Project_A中的嵌入式资源。我可以在同一解决方案中访问另一个项目的嵌入式资源吗?
我想从Project_B中引用Project_A来访问此嵌入式资源。
(基本上Project_B包括单元测试,我用ReSharper的运行它们。)
是否有可能当我在Project_B工作访问Project_A的嵌入式资源?
或者一般情况下,我可以在同一解决方案中使用另一个项目中的其他项目的嵌入式资源吗?
是的,你可以。下面是一个例子,你如何能得到嵌入的资源System.Timers.Timer.bmp
内的.NET框架的System.dll
:
using (Stream stream = typeof(System.Timers.Timer).Assembly.
GetManifestResourceStream("System.Timers.Timer.bmp"))
{
using (Bitmap bitmap = new Bitmap(stream))
{
//bitmap.Dump();
}
}
...或获取资源名称的列表:
string[] names = typeof(System.Timers.Timer).Assembly.GetManifestResourceNames();
.. 。只需将typeof(System.Timers.Timer)
替换为包含嵌入式资源的程序集中的类型。
Visual Studio为您的嵌入式资源自动创建的类是内部类。
该类无法从其他程序集访问。
您可以:
您是否尝试在”表“视图中打开嵌入式资源(双击Visual Studio中的Resources.resx文件)并更改顶部s中的“访问修饰符”旅行(“字符串”,“添加资源”,“移除资源”等)放置到公众而不是内部?
在VS2010#1中不起作用。添加新资源会导致资源类被重新设置为内部资源。 –