2013-11-27 5 views
0

У меня есть следующий код в файле msbuild.MSBuild с целью. Как я могу сделать эту работу?

<?xml version='1.0' encoding='ISO-8859-1' ?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

<PropertyGroup> 
    <ExtensionImportPath Condition="Exists('$(MSBuildExtensionsPath)\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks') AND '$(DOTNETFRAMEWORK)'!='3.5'">$(MSBuildExtensionsPath)\ExtensionPack\4.0\</ExtensionImportPath> 
    <ExtensionImportPath Condition="'$(ExtensionImportPath)' == ''">$(MSBuildExtensionsPath)\ExtensionPack\</ExtensionImportPath> 
</PropertyGroup> 
    <Import Project="$(ExtensionImportPath)\MSBuild.ExtensionPack.tasks"/> 

<PropertyGroup> 
    <CommonTop Condition="'$(CommonTop)'==''">.</CommonTop> 
    <Root>$(MSBuildProjectDirectory)</Root> 
    <SourceRoot>$(Root)</SourceRoot> 
    <OutputRoot>$(CommonTop)\bin</OutputRoot> 
    <OutputDebug>$(Root)\bin\Debug</OutputDebug> 
</PropertyGroup> 

    <Target Name="compile"> 
    <Message Condition="'$(verbose)'=='true'" Text="$(MSBuildProjectFullPath) - empty compile target"/> 
    </Target> 
</Project> 

Это используется для всех проектов. В каждом проекте у меня есть еще один проект msbuild, но я не могу заставить его работать нормально. Это мой код

<?xml version='1.0' encoding='ISO-8859-1' ?> 
<Project DefaultTargets="Start" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

<CommonTop>.</CommonTop> 
<!-- Importera top msbuild--> 
<Import Project="..\\ms_top.proj"/> 


<Target Name="Start"> 
    <ItemGroup> 
    <ProjectsToBuild Include="$(CommonTop)\bulidmyHelloProject\hello.csproj" /> 
    </ItemGroup> 
    <PropertyGroup> 
     <PackageSubDir>myoutput\hello\Bin</PackageSubDir> 
    </PropertyGroup> 
    <Message Text="StartTest" /> 
</Target> 
</Project> 

Я называю это с этим параметрами:/т: компилировать/р: многословный = True/т: TARGET = Start

, но я получаю ошибку:

CoreCompile: 
    ProjectsToBuild.Properties= 
    ProjectsToBuild.AdditionalProperties= 
    ProjectsToBuild= 
C:\Build\hello_labb_\src\w32\msbuild.proj : error MSB4057: Target target=Start does not exist in project 

Я понимаю ошибку, которую она называет первой, но нет цели Start, но как я могу заставить ее работать? Я не хочу добавлять что-либо в верхний файл msbuild.

ответ

1

Вам не хватает <PropertyGroup> вокруг вашего <CommonTop>.</CommonTop> во втором фрагменте. Исправьте его и попробуйте - это LGTM

Смежные вопросы