发布应用

时间:2017-06-16 14:32:11

标签: c# console-application

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

var rootDirectory = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));

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

当然,我在解决方案中有Content文件夹,我有我的图像。它在我运行调试时检索这些图像,但是在发布应用程序app正在搜索该文件夹

之后
  

C:\ Users \用户名\ AppData \ Local \ Apps \ 2.0 \ KRWNP492.QP2 \ Content \ name.png

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

我无法更改文件夹安装该应用的位置。错误是:

  

System.ArgumentException:参数无效。      在System.Drawing.Bitmap..ctor(String filename)      at X.Common.CommonMethods.IsExpectedScreen(Bitmap currentScreen,String screenName)

我该怎么办?

3 个答案:

答案 0 :(得分:1)

编译应用程序后,没有“解决方案”目录。有一个可执行文件(.exe)和一些图像文件。

您应该执行的操作是将图像文件的“构建操作”属性设置为“内容”,将“复制到输出目录”属性设置为“在Visual Studio的属性窗格中更新”。这应确保在构建应用程序时将Content目录和映像复制到输出目录。

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

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

确保将包含图像的Content文件夹与.exe。

一起复制到部署目录

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

var rootDirectory = Application.StartupPath;