2012-11-09 159 views
1

我將有一個相當大的解決方案,其中包含許多項目,並且有理由,而我的包含源代碼的文件夾必須沒有.obj或.exe或.dll文件在任何時候。所以,我想出了這個結構:在Visual Studio中設置輸出路徑

SolutionDirectory 
|- MainProject 
    |- MainProject.csproj 
    |- Main.cs 
    ... 
|- FirstSlaveProject 
    |- FirstSlaveProject.csproj 
    ... 
|- SecondSlaveProject 
    |- SecondSlaveProject.csproj 
... 
|- BuildFolder 
    |- MainProject 
     |- bin 
     |- obj 
    |- FirstSlaveProject 
     |- bin 
     |- obj 
    |- SecondSlaveProject 
     |- bin 
     |- obj 
    ... 

的想法是,所有的源文件都在裏面項目的文件夾,所有的二進制文件進入‘BuildFolder’,通過項目的名稱排序。似乎很合理,對吧?

所以,我認爲當我在我的解決方案中創建一個新項目時,我必須寫一些像這樣的東西%SolutionFolder%\BuildFolder\%ProjectName%\%ProjectConfigName%\bin" and "%SolutionFolder%\BuildFolder\%ProjectName%\%ProjectConfigName%\obj。因此,我在哪裏寫這個(我希望我不必爲每個Debug,Release,UnstableSpeedup等配置單獨編寫它!),以及具體如何?我懷疑VS會認出%SolutionFolder

也許有某種shell腳本或VS插件,或者其他什麼?

回答

0

自己想出來,希望對別人有用。

我打開.csproj的文件,並插入這樣的:最後PropertyGroup標籤後

<PropertyGroup> 
    <OutputPath>$(SolutionDir)BuildFolder\$(MSBuildProjectName)\$(Configuration)-$(Platform)\bin\</OutputPath> 
    <IntermediateOutputPath>$(SolutionDir)BuildFolder\$(MSBuildProjectName)\$(Configuration)-$(Platform)\obj\</IntermediateOutputPath> 
</PropertyGroup> 

經過測試,EXE確實出現在"SolutionDirectory\BuildFolder\MainProject\Debug-x86\bin"之內,所有中間的東西都去了"SolutionDirectory\BuildFolder\MainProject\Debug-x86\obj"。 Visual Studio仍然在我的源代碼樹內創建一個空的「obj」目錄,儘管......因爲它是空的,所以它不是什麼大問題。

1

項目創建完成後,右鍵單擊該項目,然後單擊屬性。在構建選項卡上是輸出路徑的一個框。

我不知道是否有爲每個項目自動化它。

+0

不幸的是,它a)不移動「obj」目錄,b)每個配置工作。手動設置6個不同的路徑(Debug-x86,Debug-x64,Release-x86,Release-x64,UnstableSpeedup-x86,UnstableSpeedup-x64)很煩人。我到底寫什麼「輸出」框? –

+0

輸出路徑是要將二進制文件輸出到的目錄。在你的情況下,它會是.. \ BuildFolder \ MainProject,.. \ BuildFolder \ FirstSlaveProject等。您不應該爲每個構建手動創建文件夾。如果文件夾不存在於目錄中,它將在您開始構建時創建它。 –

+0

我錯過了頂部的配置下拉菜單。您也可以卸載項目並直接編輯.csproj,因此您不必切換配置下拉菜單。 –

相關問題