我使用Visual Studio 2015和azure sdk 2.7.1。我创建了天蓝色的web工作。当我运行deploy时,我收到错误:
目标" MSDeployPublish"在项目中不存在。
我在Visual Studio 2013中创建了Web作业 - 部署是有效的。我比较了这两个项目(2015年和2013年) - 2013年有这样的代码:
<Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.0.3\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.0.3\tools\webjobs .targets')" />
我在2015年将此代码放入我的项目中,但部署无效。我看到了 这个question,但它对我不起作用。
答案 0 :(得分:32)
使用VS2015,在安装Microsoft.Web.WebJobs.Publish
NuGet包时,我在包控制台中注意到,由于缺少执行权限,install.ps1 powershell脚本引发了错误。在检查时,看起来这个脚本是为了在我正在安装的项目的.csproj中添加一个导入引用。将以下行添加到我的.csproj文件中就可以解决问题,并为我修复了上述错误;
<Import Project="..\packages\Microsoft.Web.WebJobs.Publish.1.0.6\tools\webjobs.targets" Condition="Exists('..\packages\Microsoft.Web.WebJobs.Publish.1.0.6\tools\webjobs.targets')" />
注意:您的软件包版本可能不同,在这种情况下,将1.0.6
替换为与您安装的软件包匹配的任何版本。
注意:您的解决方案设置可能有所不同,在这种情况下,请确保您的..\packages
文件夹路径正确无误。
注意:如果不以管理员权限运行VS,则会出现此问题。
答案 1 :(得分:9)
我必须删除Nuget,以管理员权限重新启动,然后再次添加以解决问题。
答案 2 :(得分:4)
I was able to get this issue resolved simply by adding a reference to the above mentioned void trialDivision(int prime[], const int NUM, const int SIZE) {
int j = NUM;
for (int i = 0; i < NUM; i++) {
prime[i] = 1;
}
for (int i = 2; i <= sqrt(NUM); i++, j++) {
put numbers less than n into array
}
NuGet package. No additional modification of the .csproj file were necessary in my case. I'll assume that's because of improvements in the VS 2015 tooling since the question was first posted ;)
答案 3 :(得分:1)
这对我有用
步骤1:以管理员身份运行Visual Studio
步骤2:确保在.csProj文件中有导入行(在上面的注释中提到)
步骤3:删除Webjob.Publish.Settings.JSON文件(因为它显示错误)和发布配置文件
步骤4:部署为Azure Web作业
答案 4 :(得分:0)
我使用管理员权限运行2015视觉工作室。这对我有用。
答案 5 :(得分:0)
只是想让你知道简单的软件包更新对我有用。
答案 6 :(得分:0)
我在nuget包的 project.json 项目中遇到此错误。
当我删除project.json并使用packages.config时,一切正常。
请注意,在我尝试使用之前,我确实为Windows PowerShell设置了ExecutionPolicy,(see solution of @Jon Crowell),这可能也是必要的。
如果有人想通过project.json找到解决方法,请告诉我!