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のコピータスクは不要で、最初のプロジェクトの出力に1.txtを "生成"するようなふりをしていることに注意してください。 –
関連する問題
- 1. パイプラインコードで既存のファイルに出力を追加する方法
- 2. ログ出力NGINXファイルにコンソール出力Node.jsアプリを追加する方法は?
- 3. プロジェクトにMSBuildを追加するには?
- 4. MSBuild .targetsファイルから環境変数を出力する
- 5. FinalBuilderからMSBuildタスクを呼び出す方法は?
- 6. MSBuildからログに変数値を出力する方法
- 7. GradleBuildタスクから別のgradleビルドスクリプトのタスクから出力ファイルを設定する方法は?
- 8. ビルドのためにプロジェクトにjavaファイルを追加する方法
- 9. Perl:出力ファイル名に入力ファイル名を追加
- 10. 出力をタスクからタスクに切り替える方法
- 11. プロジェクトの内部ストレージにファイルを追加する方法
- 12. MonoDroidプロジェクトに.javaファイルを追加する方法
- 13. SSISプロジェクトにファイルを追加する方法その他のフォルダ
- 14. Djangoプロジェクトに余分なファイルを追加する方法
- 15. プログラムでクラスライブラリにファイルを追加する方法プロジェクトASP.NET
- 16. Clionプロジェクトにファイルを追加する方法
- 17. Androidプロジェクトにsqlite(.db)ファイルを追加する方法と場所
- 18. Javaプロジェクトに.jarファイルを手動で追加する方法
- 19. Java EEプロジェクトにファイルを追加する方法は?
- 20. TFS 2010ではなくプロジェクトにファイルを追加する方法
- 21. iOSプロジェクトに.hと.soファイルを追加する方法
- 22. msbuildで生成されたファイルをAzureパッケージに追加する方法
- 23. プロジェクトのMSBuildタスクにTFS変数を渡す方法
- 24. 外部MSBuildファイルを実行するMSBuildタスク
- 25. プロジェクトから自動的に文字列を抽出し、wpfのresxファイルに追加する方法
- 26. Intellij IDEA。一部のフォルダからプロジェクトにファイルを追加する
- 27. gitリポジトリからxcodeプロジェクトにファイルを追加する
- 28. プロジェクトからGIFファイルからイメージを取り出す方法
- 29. Qt - プロジェクトにファイルを追加する
- 30. プロジェクトに.docファイルを追加するVB.NET
編集前のファイルパスを知っている場合は、BeforeTargets = "AssignTargetPaths"でターゲットを追加し、その中にContent ItemGroupを設定できます.CopyToOutputDirectoryメタデータがtrueに設定されていると、依存するプロジェクトにコピーされます。私はコンパイル後にこれをどうやって行うのかをすぐには知りません。 – stijn