发布应用后找不到文件夹



我有 C# 控制台应用程序,我在那里有以下代码:

var rootDirectory = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));
var img = $@"Content\{screenName}.png";
Console.WriteLine(Path.Combine(rootDirectory, img));

当然,我在解决方案中有一个内容文件夹,我在其中有我的图像。当我运行调试时,它会检索这些图像,但在发布应用程序应用程序后正在搜索该文件夹

C:\用户\用户名\应用数据\本地\应用\2.0\KRWNP492.QP2\内容\名称.png

请注意,KRWNP492.QP2内部没有任何名为Content的文件夹

我无法更改安装该应用程序的文件夹。错误在于:

System.ArgumentException:参数无效。 在System.Drawing.Bitmap..ctor(字符串文件名( at X.Common.CommonMethods.IsExpectScreen(Bitmap currentScreen, String screenName(

我能做什么?

编译应用程序

后,没有"解决方案"目录。有一个可执行文件(.exe(和一些图像文件。

您应该做的是在 Visual Studio 的属性窗格中将图像文件的"生成操作"属性设置为"内容",将"复制到输出目录"属性设置为"如果较新则复制"。这应确保在生成应用程序时将内容目录和图像复制到输出目录。

然后,您可以使用相对路径在运行时查找图像:

string path = $"Content\{screenName}.png";
System.Drawing.Bitmap b = new System.Drawing.Bitmap(path); 

请确保将包含映像的内容文件夹与.exe一起复制到部署目录。

只需使用 System.Reflection.Assembly.GetEntryAssembly().Location; 即可检索应用程序的路径。

您应该能够使用 StartupPath 属性轻松获取目录。

var rootDirectory = Application.StartupPath;

最新更新