#vb.net
Вопрос:
Я хочу получить доступ к пути к папке, из которой было запущено мое опубликованное приложение.
Все, что я могу найти, говорит об использовании приложения.StartupPath(), но это не работает.
Я написал простую программу для их отображения, опубликовал в одном отдельном файле, а затем запустил ее из каталога C:UsersjeremDownloadssplit
.
Вот что у меня есть:
Application.StartupPath = "C:UsersjeremAppDataLocalTemp.netgetlaunchdirjvi1ji54.zau"
Application.ExecutablePath = "C:UsersjeremAppDataLocalTemp.netgetlaunchdirjvi1ji54.zaugetlaunchdir.dll"
Похоже, что запуск файла .exe создает временную папку с загрузкой файлов в ней, которые затем запускаются. Хорошо, но он возвращает «неправильные» результаты для StartupPath, то есть не то, что я хочу.
Как мне это исправить?
Спасибо
** изображение настроек публикации добавлено по запросу Кая Ярда. изображение настроек публикации
Я не уверен, как вы получаете свое изображение, показывающее приложение.startuppath как C:temp — это похоже на снимок в режиме отладки, и моя проблема возникает только при запуске опубликованной программы.
Ответ №1:
Я подозреваю, что вы опубликовали его с помощью ClickOnce? Если вы опубликуете его в папке, он должен вести себя так, как вы ожидаете
И когда бегут:
Комментарии:
1. Спасибо, но я опубликовал в папке.
2. Добавьте шаги, которые вы предприняли, в свой вопрос в качестве скриншотов; как вы можете видеть из шагов, которые я включил в свой ответ, у меня не было проблем с публикацией папки..
Ответ №2:
Возможно, это то, что вы ищете:
Private uriBuilder As New UriBuilder(Reflection.Assembly.GetExecutingAssembly().CodeBase)
Public FullAssemblyPath As String = Uri.UnescapeDataString(uriBuilder.Path)
Public ExeDirectory As String = IO.Path.GetDirectoryName(FullAssemblyPath)
Комментарии:
1. Я получаю тот же результат с этим — извините.
2. Жаль — похоже на «Сетевое ядро»; нацеливание на фреймворки «старого» стиля 4.x не приводит к таким извилистым путям, хотя щелчок один раз делает то, что следует из первого ответа. У Скотта Хансельмана есть запись в блоге на эту тему.