Give和MSBuild任务在AfterTargets="AfterCompile"
中运行并生成一些文件如何让这些文件包含在当前项目输出中,以便将文件复制到引用该项目中的任何项目的bin目录如何将文件添加到项目从MSBuild输出文件任务
2
A
回答
0
我没有保证,这是正确的解决方案,但它似乎工作:
<Target Name="MyTarget" AfterTargets="AfterCompile">
<PropertyGroup>
<MyInput>D:\1.txt</MyInput>
<MyOutput>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)$(OutDir)\1.txt'))</MyOutput>
</PropertyGroup>
<Copy SourceFiles="$(MyInput)" DestinationFolder="$(OutDir)" SkipUnchangedFiles="true" />
<ItemGroup>
<AllItemsFullPathWithTargetPath Include="$(MyOutput)">
<TargetPath>1.txt</TargetPath>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</AllItemsFullPathWithTargetPath>
</ItemGroup>
</Target>
相关的逻辑是在这里: http://source.roslyn.io/#MSBuildTarget=GetCopyToOutputDirectoryItems http://source.roslyn.io/#MSBuildItem=AllItemsFullPathWithTargetPath
基本上我们依赖这样一个事实,即要确定从相关项目复制的文件列表MSBuild调用相关项目的GetCopyToOutputDirectoryItems目标并使用其输出(即AllItemsFullPathWithTargetPath)。
通过在最后一分钟将我们自己添加到AllItemsFullPathWithTargetPath中,当一个相关项目调用我们时,我们会收到提示。
+0
请注意,MyTarget中的Copy任务不是必需的,它只是假装在第一个项目的输出中“生成”1.txt。 –
相关问题
- 1. MSBuild将文件添加到主输出
- 2. 如何将项目添加到输出文件?
- 3. 如何将文件添加到SSIS项目杂项文件夹
- 4. 如何添加项目转换到VS2012 .proj msbuild文件
- 5. 如何将MSBuild添加到项目中?
- 6. 将新项目添加到XML输出文件
- 7. Intellij IDEA。将文件从某个文件夹添加到项目
- 8. 如何将项目从外部文件添加到JComboBox?
- 9. 从MSBuild项目中获取输出文件
- 10. 将文件从TFS项目添加到不同的项目
- 11. 将.ttf文件添加到java项目
- 12. 将文件添加到Xcode项目
- 13. 将.so文件添加到Android项目
- 14. Subversion:将文件添加到项目
- 15. 将文件添加到Xcode项目(SVN)
- 16. 将* .mdf文件添加到C#项目
- 17. Qt - 将文件添加到项目
- 18. 将cocos2d文件添加到xcode项目?
- 19. 将文件添加到我的项目
- 20. awk将头添加到输出文件
- 21. 如何将我的msbuild输出结果从rake中输出到日志文件
- 22. Perl:将输入文件名添加到输出文件名
- 23. 如何将包含多个文件的目录添加到wix项目输出文件夹?
- 24. 将项目添加到同一个文件中的txt输出从
- 25. 如何将输出附加到文件?
- 26. 如何将先决条件文件(.prq)添加到InstallShield项目?
- 27. 如何将项目文件中的变量传递给“MSBuild”任务
- 28. 如何将目标文件添加到Qt中的项目中
- 29. 如何指定MSbuild输出文件夹?
- 30. CMake将任意文件添加到Visual Studio项目
如果您在编译之前知道文件路径,则可以使用BeforeTargets =“AssignTargetPaths”添加目标,并在其中填充Content ItemGroup,如果CopyToOutputDirectory元数据设置为true,它将被复制到依赖项目。编译后我不会立即知道如何做到这一点。 – stijn