По различным соображениям безопасности мы внедрили сборку, которая требует наличия текстового файла вместе с ним. Мы хотели бы использовать эту библиотеку в нашем приложении ASP.NET. Проблема, с которой мы сталкиваемся, заключается в том, что при запуске приложения загрузка нашей сборки завершается сбоем, потому что требуемый текстовый файл не находится в подкаталоге временных файлов ASP.NET, из которого загружается сборка. Есть ли способ настроить сборку для загрузки из каталога bin? Если нет способа предсказать, куда будет идти dll, и написать сценарий, чтобы вручную скопировать наш файл там?Временные файлы IIS
ответ
Я думаю, что включение этого текстового файла в ваш проект решит вашу проблему.
Вот что вам нужно
- Добавить текст в свой проект с помощью Add-Existing пункта
- правой кнопкой мыши на Textfile и выберите Построить Действие, как «Материалы»
- Выберите Копировать в выходной каталог как «Копировать всегда»
Проблема заключается в том, как вы разрешаете текущую папку загружать текстовый файл в свою сборку.
Чтобы получить корневую папку IIS, вы должны использовать свойство AppDomain.CurrentDomain.BaseDirectory
.
Если ваш текстовый файл уже находится в папке Web Application bin
, смешайте:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin");
Вы можете использовать AppDomain.CurrentDomain.RelativeSearchPath
свойство быть чистым.
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppDomain.CurrentDomain.RelativeSearchPath);
Хотел бы я вернуться, чтобы проверить ваш ответ раньше. Я думаю, что это решение может работать. Что касается ситуации с консольным приложением или ситуации с окнами. Будет ли он работать и в этом случае? – Colin
Есть ли способ сделать что-то, что говорит IIS, чтобы скопировать текстовый файл в место сборки в динамическое время компиляции? Таким образом, текстовый файл уже будет рядом с сборкой, когда я вызову Assembly.GetExecutingAssembly(). Место из самой сборки. – Colin
О приложении консоли или Windows, хорошо, что «AppDomain» связан с тем, где приложение присутствует. Таким образом, 'BaseDirectory' является правильным в каждом случае, в отличие от' Environment.CurrentDirectory'. – JoeBilly
- 1. ASP.NET Временные файлы Очистка
- 2. Временные файлы
- 3. Временные файлы не удалены?
- 4. Временные файлы Android
- 5. Временные файлы Spark - snappy
- 6. Временные файлы .Net
- 7. Временные файлы на Travis
- 8. Как игнорировать временные файлы
- 9. Временные файлы Dreamweaver CS5?
- 10. CGI - Временные файлы
- 11. Временные файлы ASP.NET, отсутствующие
- 12. Временные файлы ASP.NET - проблема с дублирующимся файлом
- 13. Лучший способ удалить временные файлы
- 14. Разрешено ли создавать временные файлы?
- 15. Куда написать мои временные файлы?
- 16. Игнорировать временные файлы Интернета IE
- 17. Amazon S3 - Хранить временные файлы
- 18. Именованные временные файлы с Cython
- 19. удалить временные файлы в postgresql
- 20. Временные файлы проекта Eclipse CDT
- 21. MSDeploy удалить ASP.NET Временные файлы
- 22. Как организовать временные рабочие файлы?
- 23. Почему удаляются мои временные файлы?
- 24. Удалить временные файлы при запуске
- 25. Как сделать небольшие временные файлы?
- 26. git ignore vim временные файлы
- 27. tomcat как сохранить временные файлы?
- 28. Ansi C и временные файлы
- 29. php apache и временные файлы
- 30. Git игнорировать отслеживаемые временные файлы
Не было бы проще добавить параметр конфигурации, который указывает, где находится файл на диске? –
Я подумал об этом, но в этом случае оказалось, что это не вариант. – Colin