【问题标题】:Publish using MSBuild outputs to unexpected path使用 MSBuild 输出发布到意外路径
【发布时间】:2016-04-21 00:03:38
【问题描述】:

我正在使用以下命令为 ClickOnce 发布我的应用程序:

D:\Builds\Client.App>"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" /m "Client\Client.csproj" /target:publish /property:VisualStudioVersion=14.0;ApplicationVersion=%version%;OutputPath="Client\bin\Release"

这最终会创建预期的文件,但在此路径中:

D:\Builds\Client.App\Client\bin\Releaseapp.publish

注意到“app.publish”之前缺少路径分隔符吗?

我也尝试在命令行上指定“PublishUrl”,但无济于事:

D:\Builds\Client.App>"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" /m "Client\Client.csproj" /target:publish /property:Configuration=Release;Platform="Any CPU";VisualStudioVersion=14.0;ApplicationVersion=%version%;OutputPath="%cd%\Client\bin\Release";PublishUrl="%cd%\Client\bin\Release\app.publish"

我使用了 %cd% 来确保不使用相对路径。

【问题讨论】:

    标签: .net msbuild visual-studio-2015


    【解决方案1】:

    只需在 \Release 后添加另一个斜杠

    D:\Builds\Client.App>"C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe" /m "Client\Client.csproj" /target:publish /property:VisualStudioVersion=14.0;ApplicationVersion=%version%;OutputPath="Client\bin\Release\"
    

    如果这不起作用,那么您可以使用 PublishDir 属性来明确指定最终 clickonce 输出文件夹(如果未设置 PublishDir,msbuild 只会将默认的“app.publish”文件夹附加到 OutputRoot)。

    【讨论】:

    • 这样做(添加尾部斜杠)会导致“路径中的字符无效”错误。
    • 奇怪;这就是我所有的 msbuild 构建的设置方式,它从未抱怨过。然后您可以做的是使用 PublishDir 属性来指定最终文件夹。如果未设置 PublishDir 属性,MSBuild 只会将默认的“app.publish”文件夹附加到 OutputPath
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多