2016-10-18 3 views
0

Я использую шаблон построения по умолчанию для Visual Studio 2013. Я использовал сценарии предварительной сборки/пост-сборки для запуска сценариев Powershell в течение некоторого времени. Я смог получить доступ к переменным среды в этих сценариях, но теперь мне нужно получить доступ к свойствам, определенным в проекте Visual Studio. Специфическое свойство, которое я хочу получить в сценарии Powershell после сборки, - $ Configuration.Visual Studio 2013 Build Post-Build Powershell Script

Открываю диагностику сборки, которую я выполняю. Я могу подтвердить, что имущество передается в исполнении MSBuild для построения проекта, как этот

/p:Configuration="Release" 

я добавить к аргументам после построения сценария, как это (я также попытался это одинарные кавычки/двойные кавычки/все колпачки)

-Configuration $Configuration 

в сценарии Powershell сам я получить доступ к значению свойства через пары, как это:

[CmdletBinding()] 
param(
[string]$Configuration 
) 

то я стараюсь, чтобы написать значение этого параме тер в сценарии Powershell, как этот

Write-Host "Checking Configuration: " + $Configuration 

Я могу увидеть эту линию, когда я смотрю на диагностику от сборки, но проблема в том, что значение параметра всегда строковый литерал я прохожу в пост- строить сценарии, но никогда не заменить значение параметра Debug или Release. Вот некоторые примеры того, что печатается

Проверка конфигурации: $ конфигурация

Проверка конфигурации: "$ Конфигурация"

Проверка конфигурации: '$ Конфигурация'

Проверка конфигурации: $ КОНФИГУРАЦИИ

Можно ли сделать то, что я пытаюсь сделать, - это свойства проекта доступны для сценариев после сборки? Похоже, что это должно быть возможно, если вы прочитаете другие вопросы на этом сайте, а также сообщения на других сайтах. Есть что-то простое из сложного, которого я не хватает? Благодаря!

+0

Вы пробовали с '-конфигурация $ (Configuration)' для прохождения аргумент? Так обычно это делается в настройках VS, так как это происходит в файлах проекта, которые интерпретируются с помощью msbuild, а $ (свойство) - это синтаксис, используемый msbuild – stijn

+0

. Да. Я пробовал комбинации с круглыми скобками типа $ (CONFIGURATION) OR $ (Конфигурация) ИЛИ '$ (Конфигурация)', но конечный результат в диагностике сборки одинаковый, я получаю такие результаты, как «Проверка конфигурации: + $ (КОНФИГУРАЦИЯ)» ИЛИ «Проверка конфигурации: + $ (Конфигурация)» ИЛИ "Проверка конфигурации: + '$ (Конфигурация)'". Я попробовал каждую из этих комбинаций снова, чтобы быть уверенным. – JonPorterJones

ответ

0

У меня была такая же проблема и решена путем добавления переменной в переменные среды к Run Script задачи в XAML компиляции.

enter image description here