我想执行它使用批处理来确定一个或多个MSBuild项目csproj
项目已新建成的,因此需要新鲜的NuGet包装。 我所做的脚本到目前为止似乎是一个合理的开端,但它的增量构建机制是行不通的。 该MainBuild
目标执行每一次,不管是什么。
以下是我有:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="MainBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)'=='' ">Debug</Configuration>
<Content>content\plugins\</Content>
</PropertyGroup>
<ItemGroup>
<Nuspec Include="$(MSBuildProjectDirectory)\plugins\*\*.nuspec" />
</ItemGroup>
<Target Name="MainBuild"
Inputs="%(Nuspec.RootDir)%(Nuspec.Directory)bin\$(Configuration)\*.dll"
Outputs="%(Nuspec.RootDir)%(Nuspec.Directory)%(FileName).pkg" >
<ItemGroup>
<Inputs Include="%(Nuspec.RootDir)%(Nuspec.Directory)bin\$(Configuration)\*.dll" />
<Outputs Include="%(Nuspec.RootDir)%(Nuspec.Directory)%(FileName).pkg" />
</ItemGroup>
<Message Text="INPUTS: %(Inputs.FullPath)" />
<Message Text="OUTPUTS: @(Outputs->'%(FullPath)')" />
<Copy SourceFiles="@(Inputs)" DestinationFiles="@(Outputs->'%(FullPath)')" />
</Target>
</Project>
该Copy
的任务只是一个占位符,调试调用-出的NuGet并创建一个新包。
我们的想法是,如果在任何文件bin\Debug
目录比相应的.nuspec文件(找到两个文件夹上面更新bin\Debug
),那么MainBuild
目标应该执行。
有任何想法吗?
PS的Inputs
和Outputs
的的属性Target
大概每创建一个项。 我觉得很奇怪,创建的项目无法在目标内引用。 在上面的例子中,我不得不做出一个目标INTERNA动态的ItemGroup重新创建的项目,只是这样我就可以访问它们。 有没有办法解决,一个方法是什么?