Я пытаюсь включить подстановку в строку соединения, так что вместо ссылки на C:\Users\<myid>\Documents
я могу оставить информацию о ней и дать ей возможность динамически разрешить путь. Я видел в ответе на другой вопрос о том, что данные приложения могут ссылаться на ${AppData}
, но до сих пор я не нашел аналогичную переменную/макрос для ссылки на папку «Документы» или даже базовую пользовательскую папку. Я пробовал ${MyDocuments}
и ${Documents}
, но безрезультатно, и я не могу найти список в любом месте, где есть все возможности. Есть ли способ сделать это без написания пользовательского кода конфигурации? Я не против этого, если это единственный способ пойти; однако я бы предпочел использовать испеченное решение, если оно существует.App.config My Documents macro
ответ
Предоставленная косвенная информация - DataDirectory |, она настроена в AppDomain. Но для этого требуется модифицировать файл .config, что вполне приемлемо для приложения с серверным стилем, но не того, что вам нужно искать, если вы просто хотите получить файл из домашнего каталога пользователя.
Самый простой способ - просто форматировать строку во время выполнения. Вы можете указать строку подключения в настройки приложения, как это:
Server=.\SQLExpress;AttachDbFilename={0}\MyDataFile.mdf;Database=dbname
Обратите внимание на {0}, что позволяет вставлять в каталог с String.Format():
var homedir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var connstr = string.Format(Properties.Settings.Default.ConnectionString, homedir);
И вы до сих пор бэкдор, когда пользователь хочет совершенно другое местоположение, он просто меняет файл app.exe.config в каталог, который ему нужен.
Мне нравится ваше решение, и оно очень элегантно. Просто пытаясь выяснить, есть ли способ динамически указать путь в app.config, но, похоже, вы говорите «нет» этому вопросу. –
- 1. Папка Sync My Documents, использующая Active Directory?
- 2. My Macro runnig, но пропуская строки
- 3. Как предотвратить попадание папок IISExpress & My Web Sites в папку My Documents?
- 4. Как удалить содержимое каталога Documents (а не самого каталога Documents)?
- 5. mongodb shard geo documents
- 6. mongodb sorting array documents
- 7. DMS Integration Insert Documents
- 8. Parsing CDA hl7 documents
- 9. Mongo update large documents
- 10. Despeckling documents - OCR
- 11. Xml multiple documents
- 12. Marklogic Linking/Modeling Documents
- 13. Mongodb unind inested documents
- 14. Sharepoint User Favorite Documents
- 15. Lucene indexing html documents
- 16. Пакет для открытия папки в папке пользователя (c: \ users \ usernamehere \ my documents)?
- 17. Macro in macro loop
- 18. VBA Macro change macro
- 19. Lisp chaining macro macro
- 20. Mail Merge Macro
- 21. Пользовательское приложение app.config WPF
- 22. Mongoose update first five documents
- 23. OLE Compound Documents в Python
- 24. MongoDB filter multi sub-documents
- 25. TimeStamps in Mongoid Embedded Documents
- 26. Программно Diff/Merge Xml Documents
- 27. AVPlayer & video from documents directory
- 28. iOS - Сохранение нескольких изображений в папке Documents
- 29. Kentico Transformation - Macro in Macro
- 30. Encrypt App.config using aspnet_regiis -pef
Можете ли вы показать нам соответствующие части вашего кода, указать, какой тип приложения .NET это и предоставить ссылку об использовании '$ {AppData}', который вы нашли? – sstan