정말 아쉽게도, .NET 10의 File-based App에서는 아직 여러 파일을 자연스럽게 포함시킬 방법이 마땅치 않습니다. 암묵적으로 Directory.Build.props 파일의 존재 여부를 기반으로 프로젝트 파일처럼 사용하는 것 정도가 최선으로 여겨지는데, 여기서 더 나아가서 MSBuild 속성을 약간 패치하는 방식으로 구현한 사례가 흥미로워 공유해봅니다.
#:property Imports=TestHelper.cs
using static Test.TestHelper;
PrintMessage(
"Hello from multi-file test!"
);
위와 같은 코드를 구현하기 위하여 Directory.Build.targets 파일을 아래와 같이 구성할 수 있습니다.
<Project>
<ItemGroup Condition="'$(Imports)' != ''">
<_ImportedFiles Include="$(Imports.Split(';'))" />
<Compile Include="@(_ImportedFiles)" />
</ItemGroup>
</Project>
그리고 TestHelper.cs의 내용은 다음과 같습니다.
namespace Test;
public static class TestHelper
{
public static void PrintMessage
(string message)
{
Console.WriteLine(message);
}
}
추후 .NET 11에 와서 더 개선될 여지가 있겠으나, 이것도 흥미로운 접근법이고 하나의 방편일 것 같습니다. ![]()