2013-04-10 68 views
0

我與Web應用程序一把umbraco工作。爲了加快我的工作流程,我已將「服務的」Umbraco文件夾存放在我的Visual Studio解決方案中。這使我可以創建我的umbraco Web應用程序依賴的其他項目(.Logic,.Wcf,.etc)。的Visual Studio/MSBuild的 - '乾淨' 解決方案

這種解決方案非常漂亮(易於調試,沒有XCOPY,等)。但是,如果發出'clean'(msbuild solution.sln/t:Clean),MSBuild根據您的預期查看Umbraco的/ bin文件夾,並清除該目錄。導致不能構建的解決方案。 (例如,它看到的很多DLL的不是解決方案內使用,並刪除他們 - 本質上刪除一把umbraco應用程序)

  • 產品
    • Product.Logic(含項目邏輯)
    • Product.Web(項目包含一把umbraco應用)

有沒有做的MSBuild認識到這些文件(內/箱)不應該被刪除的方法嗎?或者更好的方法是將Umbraco DLL和我的項目/ bin分開,然後在構建事件中重新組合它們?

我已經嘗試添加DLL的爲引用到的csproj,但這並不解決問題。

<ItemGroup> 
<Reference Include="businesslogic"> 
    <SpecificVersion>False</SpecificVersion> 
    <Private>True</Private> 
</Reference> 
<Reference Include="ClientDependency.Core"> 
    <SpecificVersion>False</SpecificVersion> 
    <Private>True</Private> 
</Reference> 
</ItemGroup> 
<!-- etc --> 

最良好的祝願,

勞倫斯

回答

1

我現在已經找到了一個更強大的解決這個問題,通過上述的啓發。

的問題是,在Visual Studio項目只能知道什麼是你的項目中。通過直接在Umbraco wwwroot中工作,視覺工作室BIN與Umbraco的混淆。這使'清理'解決方案或準確跟蹤DLL是不可能的。

我建議將'output'目錄設置爲'clean'位置,然後在構建過程中將文件複製到一起。這對多個項目解決方案特別有效。

  1. 項目屬性
  2. 構建標籤
  3. 配置=所有配置
  4. 輸出路徑= .. \輸出\

然後,您需要構建甚至複製此目錄中的內容進入你的Umbraco斌。這可以使用MSBUILD完成。這可以放在包含Umbraco的項目的* .csproj中。

<!-- Copy output DLLs into BIN --> 
<ItemGroup> 
    <ProjectsOutput Include="..\output\**\*.*" /> 
</ItemGroup> 
<Copy SourceFiles="@(ProjectsOutput)" DestinationFolder="bin\%(RecursiveDir)" /> 
1

我建議只複製所需的DLL文件到相應項目的bin文件夾作爲Pre-build Event爲需要他們的項目。這樣,內置的「乾淨」功能就無需定製,而且您的流程也不會變得脆弱。

相關問題