我有一个简单的web项目,它可以正常编译和运行,但由于某种原因,我无法在VS2013.3中发布web部署包。这是我几个月来每周都要做的一项任务,没有任何问题,但这周我再也无法创建包了。
这里的错误信息:
C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.Publishing.targets(3009,5): Error : Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)
Package failed.
我们确实更新了一些代码,但没有人更改解决方案或部署设置。也许VS是通过Windows更新自动更新的,但我没有手动更新。
以下是一些可能对解决我的错误有用的信息:
- 当我以管理员身份启动VS时,问题仍然会出现
- 在VS2013.1中报告了类似的问题,但在VS2013.2中得到了修复(我使用的是2013.3)
- 错误消息指的是v10.0。我不确定是否应该是那样的
- 假定要发布包的目标路径确实存在
- 错误出现后,我确实应用了VS2013的所有可用更新,包括Azure SDK 2.4
- 我确实尝试删除并创建了一个新的部署配置文件
v10.0的引用有点奇怪,所以我调查了该文件。我意识到C:Program Files (x86)MSBuildMicrosoftVisualStudiov12.0Web
文件夹中也存在相同的文件。
然后我打开.csproj
文件,发现有一个v10.0文件夹的引用。
我已经能够通过更改值来解决这个问题
<Import Project="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov10.0WebApplicationsMicrosoft.WebApplication.targets" />
至
<Import Project="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov12.0WebApplicationsMicrosoft.WebApplication.targets" />
我仍然不知道这些值是如何混淆的,但在这个bug上浪费了一个下午之后,我很高兴能够再次工作。