У меня есть файл решения .sln, который ссылается на файл проекта .csproj, в котором задание после сборки выглядит примерно так:
<PropertyGroup>
<PostBuildEvent>
xcopy $(SolutionDir)\dir1\Somefle.xml $(ProjectDir) /Y /I
</PostBuildEvent>
</PropertyGroup>
Решение построено с использованием msbuild с задачей, подобной следующей:
<Target Name="CompileSolution">
<MSBuild Projects="@(SolutionToBuild)" Targets="Rebuild" Properties="Platform=Any CPU" />
</Target>
Теперь вот странная часть:
Если я:
- запустить скрипт сборки (скажем, c: \ MyWorkingCopy)
- renameпапка с рабочей копией (скажем, c: \ YourWorkingCopy)
- снова запустите сценарий сборки
На шаге 3 xcopy потерпит неудачу, потому что это произойдет, потому что она будет пытатьсяскопируйте файл из "c: \ MyWorkingCopy" - что, конечно, не там, где сейчас находится файл решения.
Почему msbuild использует старый каталог Solution?И есть ли способ его сбросить?
(я использую .NET Framework 3.5)