visual-studio-2010 - 使用 PowerShell 修改 Visual Studio 解决方案和项目文件

标签 visual-studio-2010 powershell automation

我们目前正在重组我们的源代码,在新目录中移动内容
结构体。这会影响我们的 Visual Studio 解决方案和项目文件,其中必须更新程序集引用、可能的输出目录、构建前和构建后事件等内容以反射(reflect)我们的更改。

由于我们有许多解决方案和项目,我希望使用 PowerShell 部分自动化该过程,例如 VS 的 PowerShell“提供程序”:

在理想的世界中,我将能够执行以下操作:

$MySolution.Projects["MyProject"].PostBuildEvent = "copy <this> to <that>"

我知道 PowerConsole (我还没有完全探索过)用于编写 Visual Studio 脚本。但是,文档很少,我不确定它是否真的满足了我的需求。

还有什么可以轻松操作解决方案和项目文件的吗?最好在 PowerShell 中,但我愿意接受其他建议。

最佳答案

根据我的经验,使用 PowerShell(从 Visual Studio 内部或外部)操作 Visual Studio 解决方案的最简单方法是将项目文件加载为 XML 并使用 PowerShell 对其进行操作。

$proj = [xml](get-content Path\To\MyProject.csproj)
$proj.GetElementsByTagName("PostBuildEvent") | foreach {
    $_."#text" = 'echo "Hello, World!"'
}
$proj.Save("Path\To\MyProject.csproj")

如果你在 NuGet 包管理器控制台中运行你的脚本,你可以获得所有项目文件的路径,如下所示:

PM> get-project -all | select -expand FileName
C:\Users\Me\Documents\Visual Studio 10\Projects\MyProject\MyProject.csproj
C:\Users\Me\Documents\Visual Studio 10\Projects\MyProject\MyProjectTests.csproj
PM>

关于visual-studio-2010 - 使用 PowerShell 修改 Visual Studio 解决方案和项目文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718065/

相关文章:

visual-studio-2010 - VS Studio 2010 Symbol Server 不包含源代码

c# - 是否可以调试在运行时编译的代码?

visual-studio-2010 - Visual Studio 2010 : Adding commands to toolbar

windows - 将文件从远程 RDP 复制到本地计算机

powershell - 我在 powershell 模块 list 中列出要导出的变量实际上并未导出

java - 当元素出现Selenium+Java时,如何在每次测试中每次调用方法?

wpf - XAML 编辑器的黑色背景

unit-testing - Powershell 如何影响 TFS2015 中的测试执行

bash - bats - 我如何在 bats 脚本中回显文件名以进行报告

input - Robot Framework 文本字段清除和输入