通过命令行将项目添加到解决方案

问题描述:

我有一个由多个测试项目组成的Visual Studio解决方案。每个项目都是模板项目的副本。当模板项目被复制时,会有一个批处理脚本运行,执行一些文件重命名并添加其他指定文件。我想要做的是在该过程中将项目添加到解决方案中。我在MSDN上看到devenv开关here,但我没有看到有关将项目添加到解决方案的任何信息。通过命令行将项目添加到解决方案

正在通过命令行添加项目到解决方案吗?

感谢

+0

我已经添加了一些编辑到我的答案,希望它会有所帮助。 – lavrik

如果你不介意的写1位的PowerShell的,你可以做到这一点很容易地。首先,阅读this question及其答案。您会发现一个指向nuget包(Microsoft.SQLServer.Compact)的指针,其中包含PowerShell脚本以通过其对象模型自动化VS。这是一个很好的开始举例说明如何从PowerShell处理解决方案文件的例子。然后,您使用SolutionFolder.AddFromFile编写一个小型PowerShell脚本将您的项目添加到您的解决方案。这可能更容易使用StudioShell及其提供者,但我还没有尝试过。

对于SLN文件尝试this question。对于项目文件,您可以运行一些xslt或任何其他必要的转换进行编辑。例如,您可以创建MSBuild proj文件,以便在所需的sln文件上运行xslt转换,然后在cmd中运行它,如:MSBuild.exe MyProj.proj。 MyProj.proj的样品含量是这样的:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="Transform"> 
    <TransformXml Source="Project.csproj" Transform="Transform.xml" Destination="New_Project.csproj" /> 
    </Target> 
</Project> 
+0

我觉得我对某事感到困惑。该项目文件是一个XML文件。我明白了。解决方案文件不是。那么,如何在项目中调用MSbuild将其添加到解决方案中? – lucasbrendel

+1

对不起,你是对的。 [看看这个](http://*.com/questions/414309/generate-solution-file-from-list-of-csproj)。任何方式sln是一个文本,你可以添加一些你需要的内容。 – lavrik