2013-07-20 28 views
2

我試圖寫一個宏/任何東西來遍歷所有項目,並刪除其他所有其他構建配置Active Solution Configuration - DebugActive Solution Platform - x86。在編輯所有項目的配置之後,我還想爲所有項目設置pre-buildpost-build事件。我不知道從哪裏開始。請幫忙。我在解決方案中有44個項目,並且手動設置所有這些項目非常困難且耗時。Visual Studio宏/其他任何東西遍歷所有項目和設置項目屬性

預生成事件:

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

後生成事件:

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

您可以查看持續集成套件,如[CruiseControl](http://www.cruisecontrolnet.org/),當您定義要構建的項目時,還可以定義要在批處理文件之前或之後運行的任務,或者PowerShell腳本。 –

+1

這是否必須是一個宏,或者我可以提出一個不涉及宏的替代解決方案來解決您的問題?我認爲這個問題適合於另一種解決方案,所以如果不需要宏,我可以爲你解決這個問題。如果需要,你應該重新解釋你的問題來解釋原因。我不希望這是IWidget :: SetColor(http://blogs.msdn.com/b/oldnewthing/archive/2013/02/06/10391383.aspx)的情況。 – user314104

+0

你問這個問題已經9天了,很久以前你可能已經完成了它。發送我的代碼問題在這裏工作不太好,請考慮一下rentacoder類型的網站。 –

回答

5

我無法清楚地瞭解你的觀點,但讓我嘗試幫助...

您可以創建clickint建設 - 一個新的配置>配置管理器 - >新建(左上,有活動的解決方案配置,點擊它,你會看到新的選項) 名稱,並檢查你要編譯項目

然後簡單地去您的解決方案,選擇使用Ctrl項目,然後leftclick->屬性 VS允許您更改多的屬性項目,所以你可以輕鬆地編寫後期構建和預編譯事件,它將適用於你選擇的所有項目...

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個PropertyGroups定義配置。這兩個配置將是您的調試/發佈配置。此外,在同一腳本,您可以將您的前/後生成事件,他們只是不同類型的地產集團,如這樣:

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

注:這是有可能更好地做到這一點的腳本時Visual Studio被關閉而不是作爲一個宏,但我沒有看到爲什麼簡單地將它包裝到一個宏中是行不通的。

相關問題