Когда я делаю сборку из Visual Studio, при пост-сборке я выполняю сценарий PowerShell из MSBuild, используя задачу PowerShell MSBuild (http://powershellmsbuild.codeplex.com/). В этом коде PowerShell я хотел бы добавить / изменить элементы в своем проекте использование автоматизации Visual Studio (через объект EnvDTE).
Точный случай:
Для каждого файла X.asmx в моем проекте мне нужно добавить файлы Xwsdl.aspx и Xdisco.aspx, которые не нуждаются в компиляции. Я хочу сделать это только в том случае, если эти файлы еще не созданы или если файл asmx новее, чем текущие файлы Xwsdl.aspx и Xdisco.aspx. В случае, если вам интересно, зачем мне нужны эти дополнительные файлы: это вещь SharePoint.
Дополнительно:
Просто добавил следующий код PowerShell в исполняемый скрипт:
$ process = [System.Diagnostics.Process] :: GetCurrentProcess ()
Write-Host "Имя процесса: $ ($ a.ProcessName)"
Что возвращает:
Имя процесса: devenv
Это означает, что msbuild выполняется в контексте процесса Visual Studio.