Visual studio msbuild自定义任务
我有一个自定义的MSBuild任务,它接收一组JavaScript文件,缩小它们,然后输出它们,扩展名为.min.js。当我通过VisualStudio进行正常构建时,它可以完美地工作,并且.min.js文件被输出到与原始文件相同的目录中。当我尝试在VisualStudio中使用发布功能进行部署时,只有原始的.js文件才能进入发布目录。。。。我如何将任务的输出计算为“内容”,以便它最终进入已发布的文件夹 编辑: 我可以通过在任务中添加Output标记,然后围绕该标记创建一个ItemGroup来解决这个问题:Visual studio msbuild自定义任务,visual-studio,msbuild,publish,msbuild-task,Visual Studio,Msbuild,Publish,Msbuild Task,我有一个自定义的MSBuild任务,它接收一组JavaScript文件,缩小它们,然后输出它们,扩展名为.min.js。当我通过VisualStudio进行正常构建时,它可以完美地工作,并且.min.js文件被输出到与原始文件相同的目录中。当我尝试在VisualStudio中使用发布功能进行部署时,只有原始的.js文件才能进入发布目录。。。。我如何将任务的输出计算为“内容”,以便它最终进入已发布的文件夹 编辑: 我可以通过在任务中添加Output标记,然后围绕该标记创建一个ItemGroup来解
<Target Name="AfterBuild">
<ItemGroup>
<JavaScriptFiles Include="Scripts\*.js" Exclude="Scripts\*.min.js" />
</ItemGroup>
<JsCompress Files="@(JavaScriptFiles)" OutputPath="Scripts">
<Output TaskParameter="CompressedFiles" ItemName="CompressedFiles" />
</JsCompress>
<ItemGroup>
<Content Include="@(CompressedFiles)" />
</ItemGroup>
</Target>
更改文件属性。检查生成操作并复制到这些文件的输出目录属性。生成和发布是单独的目标。将目标添加到项目中,将缩小抽象为自己的目标,然后使后构建和发布目标依赖于缩小目标。大概是这样的:
<Target Name="AfterBuild" DependsOnTargets="Build;Minify">
</Target>
<Target Name="Publish" DependsOnTargets="Build;Minify">
</Target>
<Target Name="Minify" DependsOnTargets="Build">
<ItemGroup>
<JavaScriptFiles Include="Scripts\*.js" Exclude="Scripts\*.min.js" />
</ItemGroup>
<JsCompress Files="@(JavaScriptFiles)" OutputPath="Scripts">
<Output TaskParameter="CompressedFiles" ItemName="CompressedFiles" />
</JsCompress>
<ItemGroup>
<Content Include="@(CompressedFiles)" />
</ItemGroup>
</Target>
当然,这段代码意味着您必须有一个构建目标,这可能是事实,也可能不是事实。因此,您可能需要对此进行修改。希望这有帮助