如果我使用Visual Studio(使用FileSystem)在我的网站上发布它可以正常工作。
现在我试图从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“。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。
这个问题似乎在SO上有详细记载但是,我已经安装了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中运行。
答案 0 :(得分:1)
已解决
.\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 SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.1工具"出于原因,我不明白。我知道它没有找到这条道路,但我不明白为什么它无法找到VS的路径!