Да, я сделал это. Исследуя его, я видел ряд мест, где они не рекомендуют его, Pro ASP.Net 4.0 для одного. Смысл, я думаю, в том, что реализация скрипта может отличаться от одной версии фреймворка к другой. Это может быть хороший совет ... или это может быть слишком усердно.
Я сравнил и структуру, и данные, когда закончил использовать RedGate Compare, и я не могу найти ничего другого с результатом ... так что я думаю, что он работает хорошо ... YMMV.
Для этого я создал новую базу данных и запустил на ней aspnet_regsql. Затем я создал новый проект базы данных в VS2010 и импортировал эту базу данных. Затем я скопировал все файлы в каталог объектов Schema моих новых проектов и поместил их в существующий каталог объектов схемы Schema. Я открыл свой старый проект, показал все файлы из меню проекта, а затем включил все новые файлы в свой проект.
Вам также необходимо скопировать все разрешения базы данных из файла Database.sqlpermissions нового проекта.
Наконец, вам нужно добавить это в сценарий после развертывания.
-- Add 6 rows to [dbo].[aspnet_SchemaVersions]
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'common') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'common', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'health monitoring') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'health monitoring', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'membership') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'membership', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'personalization') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'personalization', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'profile') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'profile', N'1', 1)
END
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'role manager') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'role manager', N'1', 1)
END