Я взглянул на ваш пример кода.Когда я пытался воспроизвести это, я использовал проект базы данных SQL 2008 в Visual Studio 2010, но то, что ваш проект является приложением уровня данных, и это совсем другое дело;когда я переключился на использование приложения уровня данных, я смог воспроизвести то, что вы видите.
Приложения уровня данных создают пакеты DAC, которые содержат определения объектов, а также содержат пользовательские сценарии, такие каксценарии до и после развертывания.Я не уверен на 100% (раньше я не использовал пакеты DAC, поэтому я основываюсь на наблюдениях и исследованиях), но я предполагаю, что файловая структура пакета DAC не поддерживаетпапки в папке Script \ Post-развертывания;Я предполагаю, что это имеет довольно строгую структуру папок внутри.Следовательно, DACCompiler, похоже, предназначен для удаления только имен файлов из ссылок на файлы в сценарии после развертывания и игнорирует путь к каталогу.
В приложениях уровня данных здесь * есть технический документ1006 *.В нем есть раздел о добавлении сценария после развертывания в пакет, и в этом разделе приведены некоторые рекомендации, включая следующие:
• При работе в Solution Explorer рекомендуется включать всекоманды после развертывания в файле сценария Script.PostDeployment.sql.Это связано с тем, что в пакет DAC включен только один файл после развертывания.Другими словами, вы не должны создавать несколько файлов.
Теперь, технически, это то, что делает команда: r, но вам может быть проще просто вставить команды непосредственно в файл вручную.
Также возможно, что это просто ошибка в дизайне DACCompiler.
Вот что я рекомендую вам сделать:
- На данный момент самый простойЯ считаю, что нужно просто переместить сценарии прямо в папку Post-Deployment;дать им уникальные, описательные имена, чтобы компенсировать отсутствие подкаталогов.
- В качестве альтернативы, если вы действительно хотите сохранить подкаталоги, добавьте команду pre-build в ваш проект;попросите его скопировать сценарии из подкаталогов в каталог после развертывания до начала сборки (вам необходимо убедиться, что сценарии имеют уникальные имена файлов)
- Если вы считаете, что это ошибка или функция, котораядолжен существовать, перейдите на
http://connect.microsoft.com/SQLServer и порекомендуйте команде продукта
обратиться к нему в будущей версии продукта.Это отличное место для вынесения рекомендаций такого рода, поскольку обратная связь направляется команде разработчиков продукта, сообщество пользователей в целом может проголосовать за отзывы, чтобы увеличить их вес, а группа разработчиков продукта может сообщить вам информацию об отзывах.
И, конечно, вы могли бы подождать и посмотреть, есть ли у кого-то другой ответ, и если да, то отлично!Но я предполагаю, что если никто еще не ответил, то, вероятно, его нет;Я конечно не мог найти что-нибудь в моем копании.
Надеюсь, в целом эта информация полезна.Хотелось бы дать вам способ заставить его работать сейчас, но я думаю, что вам лучше всего работать в рамках ограничений текущего дизайна и оставлять отзывы в Connect.
Удачи.