2014-01-26 87 views
1

我试图从.msbuild文件构建Visual Studio项目。这个想法是在构建之前做一些事情,然后从同一个地方执行.sln的构建。在MsBuild文件中包含.sln文件?

事情是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="BuildClient" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <Tools>$(MSBuildProjectDirectory)\tools</Tools> 
    <NugetExe>$(Tools)\nuget\nuget.exe</NugetExe> 
    <ClientFolder>$(MSBuildProjectDirectory)\src\Client</ClientFolder> 
    <ClientSolution>$(ClientFolder)\ClientProject.sln</ClientSolution> 
    </PropertyGroup> 

    <Target Name="BuildClient"> 
    <!--Restore Nuget--> 
    <Message Text="Starting Restoring Nuget Packages" /> 
    <Exec Command=" $(NugetExe) restore $(ClientSolution)" /> 
    <Message Text="Finished Restoring Nuget Packages" /> 


    <Import Project="$(ClientSolution)" /> 

    <!--build project--> 
    </Target> 
</Project> 

但随着<Import>线强调了VS,说进口应该是水平最高,内<Target>没有。当我移动<Import>的含量最高的建议,我得到一个执行错误:

errorMSB4025: The project file could not be loaded. Data at the root level is invalid. 

任何想法如何构建整个项目没有出现重大的改写?

回答

2

傻了!该解决方案被证明是非常简单的:

<MSBuild Projects="..\..\MySolution.sln" "/> 

这奏效了与.sln文件

我得到的指针从this answer执行构建。