通过 ClickOnce 发布后找到 'Application Files' 目录
Find 'Application Files' directory after publish by ClickOnce
在 C# 中使用 ClickOnce 发布后,我对如何找到文件夹的目录感到非常困惑:'Application Files'。我想这样做的原因是我想把一些文件放到这个文件夹中,让 C# 在用户安装我的应用程序后读取它们。
我试过:System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
,
但我总是喜欢:C:\Users\AppData\Local\Apps.0DAZ7HKJ.7TP\OZ02N2HD.7PG\cons..tion_a9321ce7eb14b63e_0001.0000_7ed45506b35ff771
,我不想要。由于我的发布文件夹在 D:\
中,我想要的是:D:\Application Files
.
提前感谢阅读我的问题的任何人!
要将文件包含到您的发布中,您不需要手动将其包含在文件夹中,而是应该将文件添加到您的项目并将其 Build Action
设置为 Content
。为确保文件包含在发布中,请转到 Project → Properties → Publish Tab → Application Files Button
并查看文件的 Publish Status
是否为 Include (Auto)
.
部署应用程序后,这些文件将部署在应用程序可执行文件附近。例如,如果您包含 image.png
,那么您可以这样找到它:
var path = System.IO.Path.Combine(Application.StartupPath, "image.png");
此外,如果出于任何原因您正在寻找您的发布文件夹,您可以在项目文件的 Project → Properties → Publish → Publish Location
或 <PublishUrl>
标记中看到您用于发布的路径。
无论您发布文件的位置如何,在您项目的 \bin\debug
文件夹中的 app.publish
文件夹下都有它们的副本。
沿着这条你不想要的路径,你找到了一个能够尊重你期望使用的东西的可执行文件
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
对于那些寻找 WPF 方式的人,这里有两个等效的方法:
var appPath = System.AppDomain.CurrentDomain.BaseDirectory
var appPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
然后像这样使用它:
var path = System.IO.Path.Combine(appPath, "image.png");
在 C# 中使用 ClickOnce 发布后,我对如何找到文件夹的目录感到非常困惑:'Application Files'。我想这样做的原因是我想把一些文件放到这个文件夹中,让 C# 在用户安装我的应用程序后读取它们。
我试过:System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
,
但我总是喜欢:C:\Users\AppData\Local\Apps.0DAZ7HKJ.7TP\OZ02N2HD.7PG\cons..tion_a9321ce7eb14b63e_0001.0000_7ed45506b35ff771
,我不想要。由于我的发布文件夹在 D:\
中,我想要的是:D:\Application Files
.
提前感谢阅读我的问题的任何人!
要将文件包含到您的发布中,您不需要手动将其包含在文件夹中,而是应该将文件添加到您的项目并将其 Build Action
设置为 Content
。为确保文件包含在发布中,请转到 Project → Properties → Publish Tab → Application Files Button
并查看文件的 Publish Status
是否为 Include (Auto)
.
部署应用程序后,这些文件将部署在应用程序可执行文件附近。例如,如果您包含 image.png
,那么您可以这样找到它:
var path = System.IO.Path.Combine(Application.StartupPath, "image.png");
此外,如果出于任何原因您正在寻找您的发布文件夹,您可以在项目文件的 Project → Properties → Publish → Publish Location
或 <PublishUrl>
标记中看到您用于发布的路径。
无论您发布文件的位置如何,在您项目的 \bin\debug
文件夹中的 app.publish
文件夹下都有它们的副本。
沿着这条你不想要的路径,你找到了一个能够尊重你期望使用的东西的可执行文件
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
对于那些寻找 WPF 方式的人,这里有两个等效的方法:
var appPath = System.AppDomain.CurrentDomain.BaseDirectory
var appPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
然后像这样使用它:
var path = System.IO.Path.Combine(appPath, "image.png");