gpt4 book ai didi

wpf - 如何确定我的 WPF(xbap) 应用程序是从哪个文件夹启动的?

转载 作者:行者123 更新时间:2023-12-01 01:28:52 24 4
gpt4 key购买 nike

我已经调查了几个小时。我找到了许多链接,包括 SO 上的几个链接,它们声称展示了如何找到启动路径或应用程序目录。建议的所有解决方案都返回一个位置:
C:\Users\<my user name>\AppData\Local\Apps\2.0\XO8PWL8B.5HH\1GZX7M0H.N1J\<temp location>\
当我的 WPF xbap 从远程位置运行时。我需要确定远程位置的实际文件夹。

我将它部署到内部服务器 ABCDEF,所以为了运行这个应用程序,我输入:

\\ABCDEF\myApp.xbap

我想以编程方式确定服务器和文件夹。我这样做的原因是每次发布 WPF 时都打开了“ automatically increment revision with each publish”。附加 DLL 所在的文件夹发生变化,该程序依赖的附加程序。

我希望能够动态确定要查看的正确文件夹。

我试过了:
'Dim path As String = Reflection.Assembly.GetEntryAssembly().Location
'Dim Path As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
'System.IO.Path.GetDirectoryName(System.Reflection. Assembly.GetExecutingAssembly.Location)
'application.StartupPath

所有这些都不起作用。

这些链接建议了我尝试过的许多方法:

Link1

Link2

Link3

Link4

Link5

最佳答案

我认为这将引导您朝着正确的方向前进。由于听起来您正在通过 ClickOnce 进行部署,因此您应该在此处获得所需的信息:

System.Deployment.Application.ApplicationDeployment.CurrentDeployment

这个类可以在 System.Deployment.dll 中找到

不幸的是 CurrentDeployment对象实际上并没有告诉您应用程序所在的位置,因此您必须做更多的工作:(

如果你这样称呼:
var datadir = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory

你会得到这样的东西(对于数据目录)

C:\Users\Administrator\AppData\Local\Apps\2.0\Data\BVPTZA5G.3AC\WC2WBZ92.D96\ expe..tion_ba14dd6bedbd6876_0000.0009_7919ca38a4e51341 \Data\1.0.0.0

从那里你需要得到上面粗体文件夹的文件夹名称,因为
应用程序位于此处(不是数据目录):

C:\Users\Administrator\AppData\Local\Apps\2.0\RCVHD71Y.7CQ\BC42YMHT.ZQ0\ expe..tion_ba14dd6bedbd6876_0000.0009_7919ca38a4e51341

所以我会创建一个函数
  • 接收第一个文件路径
  • 确定随机生成的文件夹名
  • 根据该文件夹名称(其中包含您的可执行文件)查找应用程序的文件夹

  • 我认为在 ApplicationDeployment 类型上创建扩展方法是合适的。

    希望有帮助

    关于wpf - 如何确定我的 WPF(xbap) 应用程序是从哪个文件夹启动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049646/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com