我正在尝试使用ms-build命令行构建一个解决方案,该命令行包含多个项目。
其中四个正在创建一个exe文件作为输出,其余正在创建一个Web应用程序。
现在,当我尝试使用msbuild一起构建它们时,它会抛出错误 -
/p:WebPublishMethod=Package /p:DeployOnBuild=true /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:outdir="$(build.artifactstagingdirectory)\\"
错误 -
error MSB4057: The target "ResolveWebJobFiles" does not exist in the
project.
注意 - 如果我删除属性“/ p:WebPublishMethod = Package”,那么它运行良好,但不会创建zip文件。
任何人都可以建议我创建zip文件的任何属性吗?
答案 0 :(得分:1)
任何人都可以建议我创建zip文件的任何属性吗?
您是否使用Azure网站将Web应用程序部署为Azure WebJobs?如果是,您应确保已在Web项目中安装了以下软件包。包ID =" Microsoft.Web.WebJobs.Publish
"版本=" 1.0.2"
如果没有,我不太清楚为什么会出现这个错误" 目标" ResolveWebJobFiles"不存在于 项目"在我可以访问您的Web项目之前。但我想为您提供一种解决方法,您可以检查它是否适合您:
编辑*.csproj
文件,在项目文件中添加zip目标:
<ItemGroup>
<Link Include="bin\*.dll" />
<Link Include="bin\*.exe" />
<Link Include="bin\*.exe.config" />
</ItemGroup>
<Import Project="..\.build\MSBuild.Community.Tasks.Targets" />
<Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<PropertyGroup>
<ReleasePath>bin</ReleasePath>
</PropertyGroup>
<Zip Files="@(Content);@(Link)" WorkingDirectory="$(ReleasePath)" ZipFileName="output\$(AssemblyName).zip" ZipLevel="9" />
</Target>
注意:您需要添加nuget包&#34; MSBuildTasks
&#34;并且您可以将ReleasePath
更改为其他文件夹。
有关详细信息,请参阅this document。
答案 1 :(得分:0)
问题在于可以在属性中找到的Webjob-List.json文件。
我正在使用那个缺少的项目的旧引用,删除路径解决了问题。