2012-06-19 64 views
2

首先,我很抱歉,如果我失去了一些明顯的東西,但我似乎無法找到答案的任何地方!如何獲得Visual Studio解決方案來構建並運行一個MVC項目到另一個文件夾?

我所擁有的是一些包含支持類和控制器等類庫項目和包含視圖的MVC項目的解決方案。

我想要的是能夠將這組項目構建到另一個位置(即c:\ build),並且能夠從此構建位置運行VS調試。這使得dll和pdb文件不會不斷更新並檢入到源代碼控制中,並且默認情況下只是構建到用戶PC上的另一個位置。

我所做的是更改csproj xml文件以在其中包含以下條目。

<BaseOutputPath>c:\build\$(AssemblyName)\$(Configuration)\</BaseOutputPath> 
<OutputPath>$(BaseOutputPath)\bin\</OutputPath> 
<BaseIntermediateOutputPath>$(BaseOutputPath)\obj\</BaseIntermediateOutputPath> 

現在,這適用於類庫項目和MVC項目本身創建的DLL。 VS創建相關文件夾並在其中構建正確的dll文件,包括將任何相關項目dll構建到此文件夾結構中。

但是MVC項目中似乎還發生了什麼似乎仍然將依賴dll構建到項目的\ bin文件夾中(但不會在此處自行構建)。它似乎也是,當你運行該項目時,它會嘗試從該項目的\ bin文件夾中的代碼運行,並且它無法找到它所在的MVC項目的dll。

有沒有辦法阻止VS將依賴DLL文件構建到\ bin文件夾中,並告訴它查看構建DLL的構建位置?

我看過MSDN網站上關於proj文件,並拿出了一些不同的解決方案,但他們都沒有工作。

任何幫助將不勝感激。

+2

如何剛剛從源頭控制取出的DLL。你使用什麼源碼控制系統? – Maess

+2

您的VCS應忽略二進制文件。例如,不要讓它版本化bin文件夾。 – jrummell

+0

我們使用git,它不會忽略文件夾級別的文件,我們不能忽略dll文件,因爲我們有一些第三方dll文件需要包含在項目中 – ScottG

回答

1

希望這種行爲是MSBuild相關而不是VSBuild,因爲兩個構建過程不同。如果你運氣好,並且這跟MSBuild一樣的行爲,我會遵循MSBuild調試過程:

就像在MSBuild中的任何魔法行爲一樣,在你的.CSProj文件中尋找任何import target=代碼並去找那些文件。遵循這些步驟將引導您做出有關任何此類決定的部分。

您可以將VS的調試器,編譯過程 - http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx + http://blogs.msdn.com/b/visualstudio/archive/2010/07/09/debugging-msbuild-script-with-visual-studio-2.aspx

此外,您還可以殺青構建冗長,暫時http://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx

相關問題