msbuild -p:outputdir = c:\ mydir被忽略

Mik*_*ike 43 msbuild

我正在从命令行运行msbuild,其中包含以下内容:

msbuild mysolution.sln -p:outputdir=c:\mydir
Run Code Online (Sandbox Code Playgroud)

当我运行它时,outputdir被忽略,并且正在使用csproj文件中指定的默认值.

该工具的MSDN文档说我应该能够使用此参数覆盖构建目录.我究竟做错了什么?

Jul*_*rau 98

你应该使用OutputPath更重要的是你应该使用正确的语法:

msbuild mysolution.sln /p:OutputPath=c:\mydir
Run Code Online (Sandbox Code Playgroud)

  • 如果这不起作用,1:考虑使用 `OutDir` 而不是 `OutputPath`。2:确保 `OutDir` 是为你的 `/p:` 参数列出的第一件事。 (4认同)
  • `OutputPath` 在我的例子中没有效果,但 `OutDir` 做到了 (4认同)
  • 确保不要结束`\`.`/ p:OutputPath = c:\ mydir`和NOT`/p:OutputPath = c:\ mydir \` (3认同)
  • 我试过这个,但是当项目选项中指定了链接器输出目录时,MSBuild似乎忽略了`OutputPath`. (2认同)

Cod*_*ray 8

请注意,OutputPath优先于OutDir.文档曾经是错误的,但我发现他们最终修复了它.

除此之外,很难确切地说出问题所在,因为您没有显示您作为参数传递的确切路径.我可以想象出两个可能的问题:

  1. OutputPath选项指定相对于项目目录的输出目录的路径.这意味着您无法将其设置为全局路径C:\mydir.我假设它无法找到您指定的路径,因此它默认为项目文件中指定的路径.

  2. 如果您实际指定为参数的路径包含空格,则该命令可能会失败.我相信你需要在引号中包装路径并在路径字符串的末尾附加一个额外的反斜杠.

  • GUYS.没有`OutputDir`参数.只有`OutputPath`和`OutDir`.停止加入混乱. (3认同)