2

我正在尝试编写一个宏/其他任何东西来迭代所有项目并删除除 和 之外的所有其他构建Active Solution Configuration - Debug配置Active Solution Platform - x86。同样在编辑所有项目的配置后,我想为所有项目设置pre-buildpost-build事件。我不知道从哪里开始。请帮忙。我在解决方案中有 44 个项目,手动设置所有这些项目非常困难且耗时。

预构建事件:

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

发布构建事件:

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

2 回答 2

6

我无法清楚地理解您的观点,但让我尝试帮助...

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

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

于 2013-07-29T15:35:15.240 回答
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>

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

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

注意:在 Visual Studio 关闭时将其作为脚本而不是作为宏执行此操作可能会更好,但我认为没有理由将其简单地包装到宏中也不起作用。

于 2013-07-29T15:32:00.083 回答