EmbeddedResource 无法在 Target 内部工作

EmbeddedResource not working inside Target

我有一些 TypescriptCompile 文件,然后我想将其嵌入到我的 .dll 中。我不得不迁移到新的 csproj 格式,现在我无法在 Target 中嵌入。

这个有效:

<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,如果我使用 BeforeBuildBuildResolveReferences 我会收到编译错误,因为.js 文件尚未生成。

我正在使用 JetBrains 的 DotPeek 检查资源并使用 msbuild 15.0。

此问题的解决方案在这里:https://github.com/microsoft/msbuild/issues/4778