我试图从网络API项目创建可部署的软件包,我收到了错误
error MSB4057: The target "Package" does not exist in the project.
当我尝试构建运行MVC5的Web应用程序时,我没有问题。
构建MVC5应用程序的命令是
MSBuild.exe Project.Web.csproj /P:Configuration=Debug /T:Package
失败的web api应用程序的命令是
MSBuild.exe Project.Api.csproj /P:Configuration=Debug /T:Package
我假设也许我需要安装一些东西,但我不知道是什么。谁能说出我做错了什么?
注意:如果您需要更多信息,请告诉我们。
答案 0 :(得分:1)
我四处阅读并看到我可能需要添加属性VisualStudioVersion
,但每当我尝试它时,包仍然失败。
我只是比较了csproj文件,发现以下属性组丢失了:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
添加此修复程序,因此我可能同时需要VisualStudioVersion
和VSToolsPath
。
之后我很快遇到了部署问题,而这又与更多的配置差异有关。这次它是最顶层的节点Project
。属性ToolsVersion
在一个项目中设置为4.0
,在另一个项目中设置为12.0
。将它们设置为4.0
修复它,可能是因为我正在编译MSBuild 4?我不会撒谎,这几天大部分都是试错了。上帝,我希望我再也不用再接触这个代码......