Msbuild 如何将Visual Studio中的.targets文件用于自定义生成操作?
我是MSBuild的初学者。到目前为止,我已经能够创建一个名为“MakeTextFile”的自定义任务,该任务根据您传递的内容属性在C:\中创建一个文本文件。这可以在命令行提示符下运行 我还将其包含在我的.targets文件中(在项目标记下):Msbuild 如何将Visual Studio中的.targets文件用于自定义生成操作?,msbuild,msbuild-task,Msbuild,Msbuild Task,我是MSBuild的初学者。到目前为止,我已经能够创建一个名为“MakeTextFile”的自定义任务,该任务根据您传递的内容属性在C:\中创建一个文本文件。这可以在命令行提示符下运行 我还将其包含在我的.targets文件中(在项目标记下): 当我在客户端应用程序.csproj上使用导入标记时,我现在可以将items build actions设置为“CreateTextFileAction”,但是该操作不会触发(因为C:\上没有创建文本文件) 如何获取用生成操作“CreateTextFi
当我在客户端应用程序.csproj上使用导入标记时,我现在可以将items build actions设置为“CreateTextFileAction”,但是该操作不会触发(因为C:\上没有创建文本文件)
如何获取用生成操作“CreateTextFileAction”标记的项目的所有文件路径,并将它们传递到自定义任务中
我的.targets文件仅供参考:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AvailableItemName Include="CreateTextFileAction" />
</ItemGroup>
<UsingTask AssemblyFile="CustomMSBuildTask.dll" TaskName="CustomMSBuildTask.MakeTextFile" />
<Target Name="MyTarget">
<MakeTextFile Contents="TODO HOW DO I GRAB MARKED FILES?" />
</Target>
</Project>
csproj文件有一组已定义的目标。三个主要入口点是构建、重建和清理。这些目标都有一组依赖项。如果您将自己的目标编写为标准csproj构建的一部分,那么您需要在这些依赖关系中找到合适的注入点 为了便于使用,有两个标准目标供您覆盖,分别称为BeforeBuild和AfterBuild。如果您在csproj文件中定义了这一点(在导入csharp目标文件之后),并在其中调用了自定义任务,那么它应该可以工作(或者至少可以继续工作)
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AvailableItemName Include="CreateTextFileAction" />
</ItemGroup>
<UsingTask AssemblyFile="CustomMSBuildTask.dll" TaskName="CustomMSBuildTask.MakeTextFile" />
<Target Name="MyTarget">
<MakeTextFile Contents="TODO HOW DO I GRAB MARKED FILES?" />
</Target>
</Project>
<Target Name="BeforeBuild">
<MakeTextFile Contents="TODO HOW DO I GRAB MARKED FILES?" />
</Target>