TL; DR
Могу ли я создать предварительную сборку Visual Studio, которая пропускает сборку проекта без визуальной ошибки?Могу ли я создать скрипт `pre-build`, решить, следует ли строить или пропускать проект?
ПодробностиУ меня есть проект, который содержит пользовательский файл XML и сценарий Powershell, который генерирует файл ресурса из XML во время pre-build
события.
Моя цель - только построить проект, если есть изменения в файле XML. Я уже могу определить, изменился ли файл, но я не могу сообщить Visual Studio пропустить сборку. Либо я останавливаю сценарий с кодом выхода 0
(который позволяет продолжить сборку), либо любым другим номером (который показывает уродливую ошибку в списке ошибок).
Может ли сценарий pre-build
решить, следует ли строить или пропускать проект?
Пример
# Check to see if the current file is different from the file copied during build.
if((Test-Path $buildXmlFile) -and (Compare-Object -ReferenceObject (Get-Content $projectXmlFile) -DifferenceObject (Get-Content $buildXmlFile))){
Write-Host "Changes found! Rebuilding!"
} else {
Write-Host "No changes found! Skipping Build"
# Exit 0 will cause it to still build...
# Exit -1, Exit 1, etc. will cause a big error to show...
# HOW DO I SKIP???
}
Значит, вы хотите создавать только при изменении xml-файла? Не когда другие исходные файлы меняются? –
Да, но реальный вопрос: могу ли я заставить сборку пропускать (не прерывать) из события предварительной сборки. – JimmyBoh
Я не думаю, что вы можете сделать это в сценарии предварительной сборки. Я предполагаю, что все это просто ускорит сборку, не перестраивая элементы, которые не изменились. Единственный способ, которым я знаю, это выполнить через Целевые входы и выходы. См. [Как сделать инкрементно] (https://msdn.microsoft.com/en-us/library/ms171483.aspx). Вы добавили бы шаг своего поколения в качестве цели с помощью BeforeTargets = «Build» в файле proj с вводом в качестве xml-файла и вывода как любых сгенерированных файлов. –