Можно ли удалить файл из группы "Элемент сборки" в проекте сервера SQL?
У моей команды прошли годы (до того как я присоединился) к тому, что я не принимал проекты баз данных sql server. В первую очередь потому, что есть элементы, которые имеют циклические ссылки, поэтому не могут быть созданы. Я понимаю, что рекомендуемый подход заключается в выделении или исправлении циклических ссылок.
Однако, чтобы доказать, что мы можем использовать их без необходимости исправления всей этой технической задолженности, я хотел бы подключить процесс сборки проекта моего сервера sql для удаления элементов из Build
группа товаров. Я очень хорошо знаком с msbuild, но до сих пор, похоже, ничего не изменило этот файл, включенный в сборку, и не удалось.
Установка файла (ов) в None
вместо Build
работает нормально, пока не попробуем сделать сравнение схемы. Где он либо устанавливает их обратно для сборки, либо добавляет их снова с новым именем файла, оканчивающимся на _1.sql
<Target Name="CustomSqlHook" BeforeTargets="CheckRequiredProperties;BeforeBuild;All;_SetupSqlBuildInputs;SqlBuild;SqlStaticCodeAnalysis;ResolveArtifactReferences;Build">
<Message Text="Build Before: @(Build)" Importance="high" />
<Message Importance="High" Text="custom sql hooked" />
<Message Importance="High" Text="build items are @(Build->Count())" />
<ItemGroup>
<Build Remove="project\Views\uvw_survey_history.sql" />
</ItemGroup>
<Message Text="-------------------------" />
<Message Text="Build After: @(Build)" Importance="high" />
<Message Importance="High" Text="build items are @(Build->Count())" />
</Target>
который показывает количество включенных элементов в группу сборки за период с 2978 по 2977. Однако сборка по-прежнему не выполняется для того же файла.
1 ответ
Вы можете добавить конфигурацию в свой проект (по умолчанию у вас есть Debug/Release - Add 'Schema').
Затем вручную отредактируйте файл проекта, добавив следующий атрибут к каждому элементу, который вы хотите включить только при сравнении схемы:
Condition = "'$ (Configuration)' == 'Schema'"