Member 14563206 Ответов: 3

"Application.currentproject.path" не работает в моем проекте VB


Результаты поиска неоднократно советуют использовать
"Application.CurrentProject.Path"

для надежного мягкого пути передачи данных (т. е. независимо от имени пользователя, что угодно).

Но IntelliSense в моем коде ненавидит это.

Поскольку этот код кажется таким легким для других, я предполагаю, что это что-то простое, например отсутствие требуемого оператора Imports / Namespace.

Заранее благодарю вас за то, что, скорее всего, будет
"Чертова Очевидность".

Сильвия

Что я уже пробовал:

"Application.CurrentProject.Path"

3 Ответов

Рейтинг:
2

Dave Kreskowiak

Это потому что Application.CurrentProject работает только в режиме доступа, а не VB.NET.

Если вы ищете путь свой .EXE был запущен из, используйте Assembly.GetEntryAssembly.CodeBase Конечно, вы должны импортировать систему.Пространство имен отражения.

Если вы находитесь в приложении Windows Forms, вы можете использовать приложение.StartupPath.


Рейтинг:
2

OriginalGriff

Хотя ответ Дейва верен, использование пути приложения в качестве области хранения данных-плохая идея: он может потерпеть неудачу в производстве, потому что папка Program Files защищена для предотвращения вирусной активности.
Вы должны хранить данные в "безопасном" месте: Где я должен хранить свои данные?[^] предлагает лучшие из них. Код написан на C#, но он довольно прост, и если вы действительно не можете его понять, то онлайн-конвертеры довольно хороши: Преобразователь кода C# в VB и VB в C# – Telerik[^]
Windows предоставляет три "базовых" местоположения, в которых пользователи могут хранить данные, и одно, которое является "общим" для всех пользователей: "ProgramData". Environment.SpecialFolder.CommonApplicationData обеспечивает доступ к этому.


Рейтинг:
2

Member 14563206

Большое вам обоим спасибо!

Я немного шокирован тем, что поисковые запросы рекомендуют "приложение.CurrentProject" не выглядел так, как будто код был в доступе, но все равно.

Я не новичок в программировании на VB, но мой давний партнер прошел, и он был тем, кто управлял развертыванием для наших клиентов, советуя мне по пути положения, которые я должен был ввести для этого.

Моя цель при использовании программного обеспечения, а не жесткого кода, для определения пути передачи данных состояла в том, чтобы пойти по "безопасному" маршруту.

Недавно я обновился до Windows 10, затем заменил свой жесткий диск на SSD и перезагрузил все свои MS VS и другое программное обеспечение.

Несмотря на все это, моя папка пользователя была переименована, по какой-то причине, опустив последнюю букву моего имени. Таким образом, мое приложение не могло найти его, не удалив эту последнюю букву из жесткого пути кода моего приложения.

Не могли бы вы ребята предложить несколько ссылок
для меня,
где я совершенно новичок в подготовке программного обеспечения для массового развертывания и не знаю, как сделать то, что предлагает Грифф для упомянутого развертывания?

Еще раз спасибо вам обоим.

В краткосрочной перспективе я обращусь за помощью к Дейву, но надеюсь получить лучший контроль для широкого развертывания.

Сильвия