代码之家  ›  专栏  ›  技术社区  ›  Ali Parr

在Visual Studio中移动C#项目上的中间目录

  •  15
  • Ali Parr  · 技术社区  · 17 年前

    我目前正在剥离、重构和清理一个中等规模(15个ish项目)的VisualStudio解决方案。该解决方案包含C++和C语言两个项目。

    我希望取得的成果如下:

    SolutionDir/
    SolutionDir/src/project1/{ Code here }
    SolutionDir/int/project1/configuration/{.obj files and other misc compiler junk here}
    SolutionDir/bin/project1/configuration/{The fun stuff goes here}
    

    在做了一些挖掘之后,我补充道

    <IntermediateOutputPath>..\..\int\ProjectName\Debug\</IntermediateOutputPath>
    

    致C#csproj

    这似乎是可行的。诚然,中间产物似乎最终出现在那里,但在旧位置创建了一个目录“obj”及其下的一个配置目录(例如“debug”)和一个“TempPE”目录,所有这些都是空的。

    3 回复  |  直到 17 年前
        1
  •  8
  •   sean2078    14 年前

    如果将以下两行添加到每个生成配置中,则默认情况下不会创建“obj”文件夹,并且不需要生成后操作:

    <IntermediateOutputPath>Assembly\obj\Debug\</IntermediateOutputPath>
    <BaseIntermediateOutputPath>Assembly\obj\Debug\</BaseIntermediateOutputPath>
    

    如果需要,SVN/SCC忽略属性也很有用

        2
  •  1
  •   GregC Benjamin Baumann    17 年前

        3
  •  1
  •   Jocelyn    16 年前

    我自己一直在寻找解决这个问题的方法,并想出了一些不那么麻烦的办法。

    rmdir /S /Q %1obj
    SET %ERRORLEVEL%=0
    

    在此之后,添加类似于C#项目的后期构建事件的内容:

    $(ProjectDir)CleanSrcDir.bat $(ProjectDir)
    

    (当然,这假设您将bat文件放置在项目目录中。) 然后将后期构建设置更改为“始终”,就完成了。

    这有点骇人,但肯定能解决版本控制问题。