Visual Studio 22 尝试将构建后事件作为单个 cmd 执行

问题描述 投票:0回答:1

enter image description here 我将一个项目升级到 vs22/.net6,看起来 vs22 正在尝试将我的构建后事件作为单个命令执行。 每一行都是一个单独的 xcopy cmd。 这里有什么问题吗? 我尝试在单独的批处理文件中执行,结果相同。

在图像中,您可以看到构建后事件设置/输出。

msbuild visual-studio-2022
1个回答
0
投票

这个文档xcopy

错误代码4:发生初始化错误。内存或磁盘空间不足,或者您在命令行中输入了无效的驱动器名称或无效语法。

命令行上似乎存在一些无效语法。我复制了你的脚本并在 VS2022(17.11.5) 中运行它,效果很好。

xcopy /Y $(TargetDir)*.dllp $(TargetDir)dist\bin\
xcopy /Y $(TargetDir)*.exe $(TargetDir)dist\bin\
xxx xxx

测试结果 enter image description here

与您的屏幕截图相比,您的

$(TargetDir)
似乎返回一个空字符串。它没有被正确的路径替换。

以下是解决问题的建议:

  1. 运行以下命令检查您是否有.NET6 SDK。
dotnet --info
  1. $(TargetDir)
    替换为绝对完整路径。(例如:C:\Users\source epos\项目在\调试 et8.0)

  2. 添加一个目标来打印$(TargetDir),看看宏是否可以很好地解析。

<Target Name="tet">
    <Message Text="TargetDir: $(TargetDir)" Importance="high" />
</Target>
  1. 更新VS2022到最新版本。(17.11.5可用)

  2. 创建一个面向 .NET6 的新项目并运行脚本以查看是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.