У меня есть несколько файлов TypescriptCompile, которые я затем хочу встроить в мой .dll. Мне пришлось перейти на новый формат csproj, и теперь я не могу вставлять, находясь внутри цели.
Это работает:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="testFile.ts" />
</ItemGroup>
</Project>
Пока это не так:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
</PropertyGroup>
<Target Name="AddGeneratedToBuildOutput" BeforeTargets="CoreCompile">
<ItemGroup>
<PackageFiles Include="$(MSBuildProjectDirectory)\**\*.*;"/>
</ItemGroup>
<Message Text="The target is called: %(PackageFiles.FullPath)" Importance="high"/>
<ItemGroup>
<EmbeddedResource Include="testFile.ts" />
</ItemGroup>
</Target>
</Project>
Обратите внимание, что сообщение записывается и указанный файл находится в проекте, поэтому мы можем быть уверены, что цель вызывается.
Я уже пробовал другие цели вместо CoreCompile
, но так как яиспользуя TypeScriptCompile, если я использую BeforeBuild
, Build
или ResolveReferences
, я получаю ошибки компиляции, поскольку файлы .js еще не сгенерированы.
Я использую DotPeek JetBrains для проверки ресурсов и использую msbuild 15.0.