Есть необходимость раздать небольшой проект нескольким пользователям, без лишних движений с их стороны.
Пытаюсь использовать «Web Deploy Package».
Но результат половинчатый, установка проста, но ставится не все.
В проекте есть БД (EF — создается сама), при публикации подходит вариант «AttachDbFilename=|DataDirectory|\», но папка App_Data не публикуется и БД не может создастся. Если создать папку руками, то не хватает прав на создание.
Подскажите на другие способы передать проект пользователям или хорошую документацию по встроенным средствам.
Что значит раздать? Отдать исходники или задеплоить на сервер?
В Package Manager Console вбиваете Enable-Migrations, у вас появится файл Configuration.cs где можно указать как будет создаваться база, по дефолту она создается при старте app. Там же есть матод Seed он вызывается после «миграции», в этом методе вы можете презаполнить базу, например создать тестовые записи.
Может в connectionString поменять DataDirectory на какой то Project Folder. С этой App_Data постоянно такие траблы.
Как вариант уберите галочку с Exclude files from the App_Data folder при деплое и поставьте туда какой нибудь файлик например temp.txt. Папка должна задеплоится нормально.
Отправить пользователю файл(ы) сказать что запустить (считается что IIS SQL Express установлены) и сайт разворачивается по адресу localhost/site.
Сейчас через Web Deploy Package сайт разворачивается, но при попытке создать БД ошибка что нет папки App_Data, а как в Publish указать чтобы она создавалась — не найду.
Если папку создать руками то вторая ошибка «CREATE FILE encountered operating system error 5(Отказано в доступе.) while attempting to open or create the physical file». Почему нет доступа и как дать — я догадываюсь, но пользователю это все не нужно. Мне нужно дать ему установщик типа Далее-Далее-Ок.