【问题标题】:Contents of bin folder after publishing .NET project to an MSI file - where will the image go?将 .NET 项目发布到 MSI 文件后 bin 文件夹的内容 - 图像将放在哪里?
【发布时间】:2013-11-07 14:15:54
【问题描述】:

我正在开发一个使用平板扫描仪(结合 PixTools 库)的 WinForms 应用程序。

目前在调试模式下运行时(未发布),当应用程序代码扫描图像时,它会将图像文件 .jpg 存储在项目的 bin 文件夹中(C:...\Source\winapp\bin)。然后,我的代码必须使用 File.Move() 手动将此文件移动到我希望它结束​​的目录。

但是我认为当我发布应用程序以安装在另一台机器上时,这个 bin 文件夹将不存在。我想知道在这种情况下,应用程序可能会将扫描仪中的 .jpg 存储在哪里,以便我可以提前编写代码。例如,图像会出现在第一次安装应用程序时选择的安装文件夹中的某个位置吗?

感谢您的任何建议/帮助

C

【问题讨论】:

  • 附带说明,您可能想澄清您的原始问题 - 您曾说过使用 MSI 文件,但 cmets 明确表示您实际上是通过 ClickOnce 发布的

标签: c# vb.net windows-installer publishing bin


【解决方案1】:

您可以将图像文件 (.jpg) 创建/存储到 Debug/Release 文件夹中,该文件夹是应用程序 exe 运行的路径。

以下代码为您提供应用程序运行的路径:

String  ApplicationFilePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", "");

以上代码返回的路径类似于

SolutionFolder/ProjectFolder/bin/Debug(or)Release

因此,您可以定位您的代码以从上述位置检索图像,因为即使在客户端 PC 上部署/安装应用程序之后它仍然可用。

【讨论】:

  • 谢谢 Sudhakar。我使用了您的代码,当我在调试或发布模式下在 Visual Studio 中运行时,我得到了预期的结果。我编写了一个测试应用程序,它只有一个按钮,单击该按钮时会显示一个包含字符串内容的消息框。然后我尝试在我的另一台笔记本电脑上发布和安装该应用程序,看看会出现什么。出现的字符串是 C:\Users\...\AppData\Local\Apps\2.0\0TZ6ROAO.PJG\WXB5LK32.P9W\wind...ti_82361c8a74b... 等等。这是可以预料的吗?你认为这是当安装在另一台机器上时,图像将存储在哪里而不是 bin 文件夹?
  • 请参见上面的 Sudhakar。非常感谢您的帮助
  • 没问题,“C:\Users\...\AppData\Local\Apps\2.0\0TZ6ROAO.PJG\WXB5LK32.P9W\wind...ti_82361c8a‌​74b...等”是它是您安装应用程序的路径,如果是,那么您的图像将保存在同一文件夹中并且可以正常工作。
  • 我实际上只是将我的应用程序的 setup.exe 文件复制到桌面上名为 test 的文件夹中,但它似乎使用了 C:\Users\...\AppData\Local\Apps\2.0\ 0TZ6ROAO.PJG\WXB5LK32.P9W\wind...ti_82361c8‌​a‌​74b...等文件夹自动安装。该目录还包含一些其他文件,例如应用程序文件、几个清单文件、XML 配置和 CDF-MS 文件,所以简而言之,是的,我认为这是最终安装应用程序的位置。再次感谢,将您的初始回复标记为答案:)
  • 不客气 :) 很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2019-04-10
  • 2013-08-06
  • 2021-07-11
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多