正如其他人已经表示,当你部署/安装你的应用程序到另一台机器上,你的图像文件也被复制 - 最合适的地方可能是你的项目的输出目录(bin/
目录在哪里编译的.exe
去) - 您可以将文件的“复制到输出目录”属性设置为“复制如果更新”,让Visual Studio自动为您执行此操作。
要考虑的另一件事是如何加载图像 - 如果您使用相对路径,则可能会发现即使它们与可执行文件在一起,但由于工作目录不同,您的程序仍然无法找到图像,请尝试运行从开发机器上的命令提示符下你的程序中看到这种情况出现:
:: Make sure that the current working directory is different from the one app.exe is in
C:\> path\to\my\program\app.exe
如果你的代码看起来像这样一点:
var image = LoadImage("myfile.png");
那么这是因为你的计划正在˚F可能会失败或c:\myfile.png
而不是C:\path\to\my\program\app.exe
的图像。你应该修改你的代码看起来有点像这样:
另一种方法是使用embedded resources。这稍微复杂一些,但有一个优点,即将图像嵌入输出.exe本身 - 不需要额外的文件,因此它减少了找不到所需文件的可能性,因为它们已被删除/移动/不是在安装期间复制。
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "myfile.png");
var image = LoadImage(path);
感谢您的快速回答。我创建了一个文件夹并在其中放置图像,但我无法看到图像。当我将图像放入根部时,我觉得很奇怪,尽管令人耳目一新,但看不见它们。这些文件在Windows资源管理器 – ComfortablyNumb
@ComfortablyNumb - 您需要将图像添加到项目中。 http://msdn.microsoft.com/en-us/library/9f4t9t92.aspx – Oded
对不起,有点愚蠢。谢谢... – ComfortablyNumb