【问题标题】:Visual Studio 2019 not picking up CS generated filesVisual Studio 2019 没有拾取 CS 生成的文件
【发布时间】:2019-12-24 11:50:25
【问题描述】:

我已经创建了 dot net core dll 项目。该项目的 CS 文件将是由工具(Apache Thrift 编译器)生成的文件,但输出 dll 没有拾取生成的文件。我已经添加了预构建集来生成文件。

复制步骤:

  1. 构建解决方案

  2. 使用对象浏览器打开 ThriftSample.dll。 (删除生成的cs文件和bin、com、obj文件夹。)

实际:ThriftSample.dll 中没有任何内容

预期:生成的 CS 代码应该在那里。

注意:我已经检查了 CS 文件是否已生成。附件是示例项目。( https://onedrive.live.com/?cid=aef000afffca3540&id=AEF000AFFFCA3540%21144&authkey=!AAlMaW2IqIt6l1k )

【问题讨论】:

标签: visual-studio


【解决方案1】:

参考:Is there a .NET Core CLI pre before build task?

.NET SDK 所称的“默认项”是项目文件静态评估的一部分 - 在运行任何目标之前。因此,您需要一个在需要 @(Compile) 项之前运行的目标。

诀窍是在自定义工具运行后包含添加到文件系统的文件。这可以通过重新扫描所有文件并在构建之前运行的目标中排除那些已经属于项目的部分来完成:

<Target Name="GenerateSomeFiles" BeforeTargets="BeforeBuild">
<Exec Command="dotnet my-tool" />
    <ItemGroup>
      <Compile Include="**/*$(DefaultLanguageSourceExtension)"
               Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);$(BaseIntermediateOutputPath)**;$(BaseOutputPath)**;@(Compile)" />
    </ItemGroup>
  </Target>

【讨论】:

    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2019-09-06
    相关资源
    最近更新 更多