我有一个文件夹生成的文件,反映了我的项目的文件。
例子:如果项目有一个文件在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>