我在一些按钮上使用图片,我不希望这些图像包含在输出中。
这些图像是通过按钮属性设置的,因此它们在Resource.resx文件中定义。
我被告知要将Build Action设置为Embedded Resource,但我很好奇为什么这会产生影响。我现在将构建操作设置为“无”,并且没有任何文件设置为复制。我可以将构建的应用程序移动到任何地方并启动它,所有图像都显示得很好。 (只是为了澄清一下,这些图像在启动时肯定不在程序目录中,它们看起来还不错。)
我在MSDN上查了一下并得到了这个:
无 - 文件未包含在项目输出组中,而不是 在构建过程中编译。一个例子是包含的文本文件 文档,例如自述文件。
嵌入式资源 - 此文件是 嵌入在主项目中的构建输出作为DLL或可执行文件。它 通常用于资源文件。
但是从这听起来好像将它们全部设置为无甚至不应该工作(但确实如此)。
所以我很好奇它为Embedded Resource提供了什么好处。我测试了它,没有区别。希望有人能解释发生了什么。
我唯一的假设是,当通过按钮设置图像属性并且条目被添加到资源文件时,它不会连接到添加到项目中的文件(即使它们是相同的)。因此,如果您以这种方式设置图像属性,那么图像甚至不需要包含在项目中(即在解决方案资源管理器中)。
谢谢!
答案 0 :(得分:10)
您似乎偶然发现了两种不同的图像显示方式。
如果您使用资源文件,那么资源文件本身就会 包含图像,该文件将被复制到输出目录中。你会 然后从这个资源文件中引用图像,一切都将是 好。 none / embedded / content的实际图像设置不会 物。这允许您为各种创建资源文件 语言和位置,并根据您的要求更改使用哪个图像 应用文化。
引用图像的另一种方法是嵌入或者嵌入图像 将其设置为项目中的内容。如果您将其设置为内容 将复制到输出目录,并可以物理参考 根据位置或嵌入它,文件将位于内部 创建的dll,您可以使用它来提取资源流 使用内置函数将文件放入其中。
您正在使用方法#1,所以一旦将它放在资源文件中,您就不必在项目中拥有它,因为资源文件已经在项目中,而且文件将来自该文件。< / p>