MSBuild 命令不会从 Visual Studio 内部运行

发布于 2025-01-01 11:02:57 字数 267 浏览 0 评论 0原文

我一直在开源 MarkdownDeep 上做了一些修改,但我在发布时遇到了问题out - 该项目包含一个构建后任务,用于使用 Nuget.exe 进行一些打包。

我可以从 dos 框执行该命令,不会出现错误,但该步骤总是失败(当从 VisualStudio 作为发布构建配置的一部分运行时,出现错误:9009。

有人能想到这是为什么吗?

I've been doing a few mods on the open-source MarkdownDeep but I'm having trouble getting a release out - the project includes a post-build task to do some package-ing using Nuget.exe.

I can execute the command without errors from a dos box, but the step always fails (with Error: 9009 when run from VisualStudio as part of a Release build configuration.

Can anyone think why this is?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

披肩女神 2025-01-08 11:02:57

我猜想,当您从命令行手动运行时,您要么

  • 在“本地”执行,工作目录就是构建步骤中使用的所需路径的目录,
  • 您正在适当地完全限定路径

底线似乎是路径从 Visual Studio 执行时 /s 不起作用(由于断行、PATH 环境变量中不存在文件等原因,无法找到执行操作所需的目录/文件) )。

Visual Studio 中的构建前和构建后步骤“转换”为单个批处理脚本并执行,此步骤中的路径应正确用引号括起来,绝对或相对指定等,但最终需要能够正确扩展/解决完成路径。

例如,我将 引用以下代码片段

SvcUtil.exe 参数 1 参数 2 将失败

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe
参数1参数2会失败

“C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe”
参数1参数2就可以了。

I would guess that when you are running manually from the command line you are either,

  • executing 'locally', the working directory is that of the required paths used in the build step
  • you are fully qualifying paths appropriately

The bottom line would seem that the path/s do not work out when executed from Visual Studio (can't find directory / file required to perform an operation, due to line-breakage, file not present in the PATH environment variable, and the like).

Pre- and post-build steps in Visual Studio get 'converted' into a single batch script and executed, the paths in this step should be properly enclosed in quotes, absolutely or relatively specified etc. but ultimately need to be able to properly expand/resolve to complete paths.

As an example, I'll quote the following snippet:

SvcUtil.exe parameter1 parameter2 will fail

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe
parameter1 parameter2 will fail

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil.exe"
parameter1 parameter2 will do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文