Visual Studio宏/其他任何东西来迭代所有项目并设置项目属性

时间:2013-07-20 07:33:55

标签: vb.net visual-studio-2010 macros visual-studio-macros

我正在尝试编写一个宏/其他任何内容来迭代所有项目,并删除Active Solution Configuration - DebugActive Solution Platform - x86以外的所有其他构建配置。此外,在编辑了所有项目的配置后,我想将pre-buildpost-build事件设置为所有项目。我不知道从哪里开始。请帮忙。我有44个项目在解决方案中,手动设置所有这些项目真的很费时间。

预建活动:

rd /s /q "$(ProjectDir)bin"

发布后活动:

copy "$(TargetPath)" "$(SolutionDir)TOTALOUTPUT\" /y

2 个答案:

答案 0 :(得分:5)

我无法理解你的观点,但让我试着帮助......

您可以通过clickint Build-> Configuration Manager-> New创建新配置(左上角,有活动解决方案配置,点击它会看到New选项) 将其命名并检查您要编译的项目

然后只需转到您的解决方案,使用Ctrl选择项目,然后选择leftclick->属性 VS允许您更改多个项目的属性,因此您可以轻松编写后期构建和预构建此类事件,它将适用于您选择的所有项目...

答案 1 :(得分:1)

您可以选择将它放在宏中,但是我实际上建议您直接转到.csproj和.sln文件。在.csproj文件中,它们有一系列属性组,用于指定构建配置,如下所示:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

如果您创建一个简单的脚本/程序/ etc,它遍历所有相关的.csproj文件,并读取.csproj xml文件。通过它,您可以简单地确保只显示定义配置的2个PropertyGroup。这两个配置将是您的调试/发布配置。此外,在同一个脚本中,您可以添加前/后构建事件,它们只是一种不同类型的属性组,例如:

  <PropertyGroup>
    <PostBuildEvent>xcopy $(TargetName).* "%25SEARCH1%25"\bin\ /i /y</PostBuildEvent>
  </PropertyGroup>

注意:当Visual Studio关闭而不是作为宏时,最好将此作为脚本执行,但我认为没有理由将它包装到宏中也不起作用。