开放原子开发者工作坊 在VisualStudio中显示文件时,从编译中排除文件

在VisualStudio中显示文件时,从编译中排除文件

我有一个文件夹生成的文件,反映了我的项目的文件。例子:如果项目有一个文件在Framework/HaTool.cs然后,也会有一个文件在Generated/Framework/HaTool.cs.我试着用Generated用于生成的文件和用于调试和开发的原始文件。(我用的是#line指令)我几乎所有事情都要工作,除了我似乎找不到一种方法让VisualStudio(2017社区)...

我有一个文件夹生成的文件,反映了我的项目的文件。

例子:如果项目有一个文件在Framework/HaTool.cs然后,也会有一个文件在Generated/Framework/HaTool.cs.

我试着用Generated用于生成的文件和用于调试和开发的原始文件。(我用的是#line指令)

我几乎所有事情都要工作,除了我似乎找不到一种方法让VisualStudio(2017社区)同时显示Generated目录以及它在解决方案资源管理器和尝试在设计时将它们编译在一起。

我的当前设置不会在解决方案资源管理器中向我显示这些文件,但将使用它们来构建。这里是我的相关部分.csproj档案:

  <Project ToolsVersion="15.0">

    <PropertyGroup Condition="'$(GeneratedSourcePath)'==''">
      <GeneratedSourcePath>Generated</GeneratedSourcePath>
    </PropertyGroup>

    <ItemGroup>
      <Compile Remove="$(GeneratedSourcePath)\**" />
    </ItemGroup>

    <Target Name="UseGeneratedTarget" BeforeTargets="BeforeBuild" KeepDuplicateOutputs="false">
      <ItemGroup>
        <Compile 
          Condition="Exists('$(GeneratedSourcePath)\%(Compile.Identity)')" 
          Include="$(GeneratedSourcePath)\%(Compile.Identity)" />
        <Compile 
          Condition="Exists('$(GeneratedSourcePath)\%(Compile.Identity)')" 
          Remove="%(Compile.Identity)" />
      </ItemGroup>
    </Target>

    <Target Name="CleanupTarget" AfterTargets="AfterBuild">
      <ItemGroup>
        <Compile>
        <NonGeneratedFilename>$([System.String]::Copy('%(Compile.Identity)').Replace('$(GeneratedSourcePath)\', ''))</NonGeneratedFilename>
        </Compile>
      </ItemGroup>
      <ItemGroup>
        <Compile Include="@(Compile->'%(NonGeneratedFilename)')"/>      </ItemGroup>
    </Target>

  </Project>


转载于:https://blog.51cto.com/13865063/2172803

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐

  • 浏览量 1280
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献8601条内容