代码之家  ›  专栏  ›  技术社区  ›  MyDaftQuestions

从MSBUILD发布(FTP)失败

  •  0
  • MyDaftQuestions  · 技术社区  · 7 年前

    如果我用Visual Studio(使用文件系统)发布我的网站,效果会很好。

    现在,我正尝试在Powershell中执行同样的操作。

    .\MSBuild.exe $sln /p:PublishProfile=MyTestProfile /p:PublishProvider=FileSystem /p:CreatePackageOnPublish=False /p:DeployOnBuild=False /p:VisualStudioVersion=15.0 /v:diag
    

    以上内容基于发布时的输出窗口(Visual Studio)(使用诊断输出)。复制和粘贴物品以避免拼写错误。

    我的问题是它从未出版过!

    现在,Powershell向我显示以下消息:

    生成失败。

    “C:\Users\me\source\repos\Test03\WebApplication2\WebApplication2.csproj”(默认目标)(1)-> C: \Users\me\source\repos\Test03\WebApplication2\WebApplication2。csproj(265,3):错误MSB4019:未找到导入的项目“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”。确认声明中的路径正确,并且文件存在于磁盘上。

    这个问题似乎在这里得到了很好的记录,但我已经安装了VS,而这不是构建服务器。这一切都是在我的一台机器上完成的。。。然而,如果我想找到那条路 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets 它不存在。我有 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\ 但在此文件夹中只有一个名为FileTracker的文件夹。

    这让我更加困惑,因为它是在Visual Studio中工作的,而不是在Powershell中。

    1 回复  |  直到 7 年前
        1
  •  1
  •   MyDaftQuestions    7 年前

    已解决

    .\MSBuild.exe $sln /p:PublishProfile=MyTestProfile /p:PublishProvider=FileSystem /p:CreatePackageOnPublish=False /p:DeployOnBuild=True /p:AspnetMergePath="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools" /p:VisualStudioVersion=15.0 #/v:diag
    

    您可能没有正确visual studio版本的路径。正在下载NET Core SDK应提供 https://www.microsoft.com/net/download/windows

    但是,您可能需要更新到生成路径的正确路径(其中存在msbuild.exe)。

    然后我不得不手动添加/p:AspnetMergePath=“C:\Program Files(x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6.1工具”,原因我不明白。我知道它找不到这条路,但我不明白为什么它在VS可以找到的时候却找不到这条路!