我有一个.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>
现在这里有一个奇怪的部分:
如果我:
在第3步,xcopy将失败,因为它将尝试从“c:\ MyWorkingCopy”复制文件 - 当然这不是解决方案文件所在的位置。
为什么msbuild使用旧的Solution目录?有没有办法重置它?
(我使用的是.NET Framework 3.5)
答案 0 :(得分:2)
它可能与构建sln文件时由msbuild创建的sln.cache文件有关(它是从sln文件构建的临时proj文件),如果它存在或sln未被修改sln文件.cache文件可能会被使用...我真的不知道,但我觉得它可以帮助。