MSBuild Web API项目未创建可部署的包

时间:2014-10-30 03:01:38

标签: asp.net-web-api msbuild webdeploy

我试图从网络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

我假设也许我需要安装一些东西,但我不知道是什么。谁能说出我做错了什么?

注意:如果您需要更多信息,请告诉我们。

1 个答案:

答案 0 :(得分:1)

我四处阅读并看到我可能需要添加属性VisualStudioVersion,但每当我尝试它时,包仍然失败。

我只是比较了csproj文件,发现以下属性组丢失了:

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

添加此修复程序,因此我可能同时需要VisualStudioVersionVSToolsPath

之后我很快遇到了部署问题,而这又与更多的配置差异有关。这次它是最顶层的节点Project。属性ToolsVersion在一个项目中设置为4.0,在另一个项目中设置为12.0。将它们设置为4.0修复它,可能是因为我正在编译MSBuild 4?我不会撒谎,这几天大部分都是试错了。上帝,我希望我再也不用再接触这个代码......