网页发布扩展程序未安装,需要安装后才能进行发布。

12
我正在尝试按照此链接的教程将ASP.NET Web应用程序部署到Windows Azure Web站点:https://www.windowsazure.com/en-us/develop/net/tutorials/get-started/。下载了公共配置文件(即“.PublishSettings”文件)后,我回到Visual Studio,在“解决方案资源管理器”中右键单击项目,并像教程中所述选择“发布”选项。然而,一个警告框弹出并显示“需要安装Web发布扩展以进行发布。您可以从http://go.microsoft.com/fwlink/?LinkID=208120安装它。”。
我已经安装了“Windows Azure SDK for .NET (VS 2012)”,并尝试卸载并重新安装,但问题仍然存在。
有人知道如何解决吗?非常感谢。
11个回答

15

我遇到了2个相关的问题。一个是需要安装Web发布扩展名才能进行发布,另一个是Web扩展包未加载。

我为其他遇到此问题的用户点赞并转发 user3918092 的解决方案,其中包括:

  1. 删除 ComponentModelCache 文件夹,位于 C:\Users\...\AppData\Local\Microsoft\VisualStudio\12.0C:\Users\...\AppData\Roaming\Microsoft\VisualStudio\12.0
  2. 修复 Azure SDK 2.4 和 VS2013U3,卸载并重新安装这两个程序
  3. 从解决方案中删除扩展
  4. 在 VS 启动时忽略扩展
  5. 使用 devenv /setup 和 devenv /updateconfiguration 尝试重置配置

解决方案如下:

使用以下命令从以管理员身份运行的 VS 命令行重装以下项目到全局程序集缓存 (GAC):

gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Publish.dll"  
gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Internal.Contracts.dll"

感谢 user3918092!


1
我在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish中找不到Microsoft.VisualStudio.Web.Internal.Contracts.dll,但我在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\VWDExpressExtensions\Microsoft\Web Tools\Publish中找到了它。可能是因为我使用的是vs 2013 express。将这两个文件都安装到gac中解决了问题。感谢您的评论!非常有帮助。 - jivangilad
在回答中描述的步骤中,我只执行了第一步(删除缓存)和最后一步(将两个dll添加到GAC),这解决了我的问题。 - Martin

2

安装Web工具更新后,使用Visual Studio 2015.1也会遇到同样的问题。

必须安装到gac中的程序集现在包括:

gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Publish.dll"
gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Publish.Core.Contracts.dll"
gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Publish.Contracts.dll"

谢谢Hansmaad!对我来说,这也解决了Visual Studio 2015更新3的问题,之后我能够在Web工具下看到发布文件夹。安装失败是因为NuGet失败,需要我删除Common7/IDE/Extensions下包含Nuget文件名的任何文件夹。否则,扩展安装将因文件正在使用而失败。核心问题在于=> https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/3487794-create-a-remove-all-remnants-of-visual-studio-fro 我不再是微软的追随者了... - BillKrat
顺便说一句,微软Visual Studio团队已经关闭了上面链接中的问题,这个问题自2012年以来一直困扰着3960多名开发人员,他们提供了一个实用程序“scorched”,但对我没有用。我去下载VS预览版6(重写安装),但它无法安装,因为我的Windows 7没有所需的KB(IT安全不允许我安装)。我无法相信他们让我们在这个问题上挣扎——我浪费了一周的开发时间... - BillKrat

2

我有同样的问题。在重新安装VS 2013更新4和Azure SDK 2.6后,问题仍然存在。

但是我尝试了下面的方法: 在控制面板的>程序>程序和功能部分中选择并修复Microsoft ASP.NET和Web Tools 2013.4。

然后发布选项又可以正常工作了。


2

仅仅在今天,也就是2014年12月1日,我不得不安装更新4。但是这个简单的步骤确实为我解决了这个问题。 - Diana

2

这对我很有帮助。 我曾经使用Visual Studio Express 2012,然后安装了需要Azure工具的Visual Studio 2013。我安装了2.4版本后,就失去了发布功能并卸载了Visual Studio Express 2012。

所以我认为它是如何出现问题的。

解决方法是使用开发人员命令提示符作为管理员重置Contract和Publishing的程序集。

如果您使用的是默认安装设置,则路径可能为

gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Publish.dll"
gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Microsoft.VisualStudio.Web.Internal.Contracts.dll"

使用Visual Studio 2015社区版并进行了更新。遇到了同样的问题,按照hansmaad的建议安装了更新,现在一切正常。如果这有帮助的话。 - T1mark

1

我在将 VS 2013 Ultimate 从更新 3 升级到 4 的过程中遇到了问题。同时,当加载解决方案时,我也收到了关于 Microsoft.VisualStudio.Web.PasteJson.JsonPackage 未能正确加载的消息。 修复 VS 就足以让我重新使用发布选项。


0
我再次卸载了VS2012。在重新安装之前,我进入了我的用户AppData和文档文件夹,并找到了所有的Visual Studio 2012实例并将它们删除。然后我重新安装了VS2012,现在Web发布正常工作。
我卸载后删除的文件夹:
  • C:\Users\USERNAME\Documents\Visual Studio 2012
  • C:\Users\USERNAME\AppData\Local\Microsoft\VisualStudio\11.0
  • C:\Users\USERNAME\AppData\Roaming\Microsoft\Microsoft Visual Studio\11.0
  • C:\Program Files\Microsoft Visual Studio 11.0
  • C:\Program Files (x86)\Microsoft Visual Studio 11.0


0

在更新VS 2013.2至VS 2013.3后遇到此问题时,注册GAC也可以解决。


0

我曾经遇到过类似的问题,但我的错误与脚手架项目有关。

为了解决这个问题,我需要卸载 Visual Studio 并检查所有相关文件夹、注册表,然后重新安装 Visual Studio。

我检查的文件夹包括:

  • %App Data%
  • %Program Data%
  • %Program Files%
  • Windows

希望这能帮到你 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接