我正在从命令行运行msbuild,其中包含以下内容:
msbuild mysolution.sln -p:outputdir=c:\mydir
当我运行它时,将忽略outputdir并且正在使用csproj文件中指定的默认值。
此工具的MSDN文档说我应该能够使用此参数覆盖构建目录。我做错了什么?
答案 0 :(得分:86)
你应该使用OutputPath
,更重要的是你应该使用正确的语法:
msbuild mysolution.sln /p:OutputPath=c:\mydir
答案 1 :(得分:8)
请注意,OutputPath
比OutDir
更受欢迎。以前的文档是错误的,但我发现他们最终修复了它。
除此之外,很难确切地说出问题所在,因为你没有显示你作为参数传递的确切路径。我可以想象有两个可能的问题:
OutputPath
选项指定输出目录相对于项目目录的路径。这意味着您无法将其设置为C:\mydir
之类的全局路径。我假设它无法找到您指定的路径,因此它默认为项目文件中指定的路径。
如果您实际指定为参数的路径包含 spaces ,则该命令可能会失败。我相信你需要在引号中包装路径并在路径字符串的末尾添加一个额外的反斜杠。
答案 2 :(得分:2)
我相信你应该使用 OutputPath 。
答案 3 :(得分:1)
我能够为MSBuild命令行配置OutDir。请使用命令在下面的链接中查看我的答案。 请参阅我的回答https://stackoverflow.com/a/26477048/1006422