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