你可以选择把这个宏,或者没有,但是我真的建议直接去到.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个PropertyGroups定义配置。这两个配置将是您的调试/发布配置。此外,在同一脚本,您可以将您的前/后生成事件,他们只是不同类型的地产集团,如这样:
<PropertyGroup>
<PostBuildEvent>xcopy $(TargetName).* "%25SEARCH1%25"\bin\ /i /y</PostBuildEvent>
</PropertyGroup>
注:这是有可能更好地做到这一点的脚本时Visual Studio被关闭而不是作为一个宏,但我没有看到为什么简单地将它包装到一个宏中是行不通的。
您可以查看持续集成套件,如[CruiseControl](http://www.cruisecontrolnet.org/),当您定义要构建的项目时,还可以定义要在批处理文件之前或之后运行的任务,或者PowerShell脚本。 –
这是否必须是一个宏,或者我可以提出一个不涉及宏的替代解决方案来解决您的问题?我认为这个问题适合于另一种解决方案,所以如果不需要宏,我可以为你解决这个问题。如果需要,你应该重新解释你的问题来解释原因。我不希望这是IWidget :: SetColor(http://blogs.msdn.com/b/oldnewthing/archive/2013/02/06/10391383.aspx)的情况。 – user314104
你问这个问题已经9天了,很久以前你可能已经完成了它。发送我的代码问题在这里工作不太好,请考虑一下rentacoder类型的网站。 –