gpt4 book ai didi

msbuild - $(SolutionDir) 的奇怪行为,.csproj 文件中的 msbuild 是错误的

转载 作者:行者123 更新时间:2023-12-01 04:15:00 26 4
gpt4 key购买 nike

我有一个 .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)
  • 重命名工作副本文件夹(比如 c:\YourWorkingCopy)
  • 再次运行构建脚本

  • 在第 3 步中,xcopy 将失败,因为它将尝试从“c:\MyWorkingCopy”复制文件——这当然不是解决方案文件现在所在的位置。

    为什么 msbuild 使用旧的解决方案目录?有什么方法可以重置它吗?

    (我使用 .NET Framework 3.5)

    最佳答案

    它可能与构建sln文件时msbuild创建的sln.cache文件有关(它是从sln构建的临时proj文件),如果它存在或者sln没有修改sln.cache文件可能会被使用...我真的不知道,但我认为它会有所帮助。

    关于msbuild - $(SolutionDir) 的奇怪行为,.csproj 文件中的 msbuild 是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269643/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com