2010-11-24 55 views
4

我有一個解決方案的.sln文件引用了具有建的類似任務後.csproj的項目文件:怪異的行爲錯了

<PropertyGroup> 
    <PostBuildEvent> 
     xcopy $(SolutionDir)\dir1\Somefle.xml $(ProjectDir) /Y /I 
    </PostBuildEvent> 
</PropertyGroup> 

<Target Name="CompileSolution"> 
    <MSBuild Projects="@(SolutionToBuild)" Targets="Rebuild" Properties="Platform=Any CPU" /> 
</Target> 

現在,這裏的怪部分:該解決方案是使用的MSBuild用類似下面的任務內置

如果我:

  1. 運行構建腳本(比如C:\ MyWorkingCopy)
  2. 重命名工作副本的文件夾(比如到c:\ YourWorkingCopy)
  3. 再次

運行構建腳本在步驟3中, xcopy將失敗,因爲它會嘗試從「c:\ MyWorkingCopy」複製文件 - 當然這不是解決方案文件現在所在的位置。

爲什麼msbuild使用舊的Solution目錄?有沒有辦法重置它?

(我使用的.NET Framework 3.5)

+0

您是否在msbuild執行過程中將您的工作副本文件夾名稱重命名?或者我錯過了什麼? – 2010-11-24 17:44:53

+0

也許msbuild創建一個你應該刪除的緩存文件? – stijn 2010-11-24 18:57:36

回答

2

這可能與由MSBuild的,當你建立一個SLN文件(這是從一個SLN建一個臨時文件凸出)創建的sln.cache文件,如果它存在或者如果sln沒有被修改,sln.cache文件可能會被使用......我不知道,但我認爲它可以幫助。