你可以選擇把這個宏,或者沒有,但是我真的建議直接去到.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類型的網站。 –