我正在尝试编写一个宏/其他任何内容来迭代所有项目,并删除Active Solution Configuration - Debug
和Active Solution Platform - x86
以外的所有其他构建配置。此外,在编辑了所有项目的配置后,我想将pre-build
和post-build
事件设置为所有项目。我不知道从哪里开始。请帮忙。我有44个项目在解决方案中,手动设置所有这些项目真的很费时间。
预建活动:
rd /s /q "$(ProjectDir)bin"
发布后活动:
copy "$(TargetPath)" "$(SolutionDir)TOTALOUTPUT\" /y
答案 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关闭而不是作为宏时,最好将此作为脚本执行,但我认为没有理由将它包装到宏中也不起作用。