2014-01-26 153 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執行構建。