【问题标题】:error MSB4057: The target "Package" does not exist in the project file named MVCWebUIComponent.csproj错误 MSB4057:名为 MVCWebUIComponent.csproj 的项目文件中不存在目标“包”
【发布时间】:2017-10-18 06:06:46
【问题描述】:

我有一个文件名 MVCWebUIComponent.csproj,我在文件中添加了以下行

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

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

但它不会将目标包 v10.0 导入此路径

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio

。 我有 v9.0 文件夹,但我需要将包 v10.0 导入我的 Visual Studio 2017。我该怎么办?

【问题讨论】:

    标签: c# visual-studio msbuild


    【解决方案1】:

    我有 v9.0 文件夹,但我需要将包 v10.0 导入我的 Visual Studio 2017。我该怎么办?

    不确定为什么要将包 v10.0 导入 Visual Studio 2017。由于要将其导入 Visual Studio 2017,$(MSBuildExtensionsPath32) 的值应该是相对于 MSBuild 目录的新位置:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild
    

    所以它不会将目标包 v10.0 导入路径C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio

    另外,导入命令:

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
    

    是原始行的关闭版本 (Condition="false"),它允许 Visual Studio 仍将您的项目视为有效的 Web 应用程序项目(这就是 VS 的技巧2010 SP1 自己做)。因此,一般情况下,v10.0 包是不会被导入的。

    您可以创建一个Web应用程序项目,检查项目文件,您会发现以下代码:

      <PropertyGroup>
        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
      </PropertyGroup>
      <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
      <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
    

    导入命令&lt;Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /&gt;实际导入(Condition="false")时会导入最新行。

    如果您坚持将 v10.0 包导入我的 Visual Studio 2017,您只需在 csproj 中添加一些内容即可重定向 MSBuildExtensionsPath

    <PropertyGroup>
        <MSBuildExtensionsPath32>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio</MSBuildExtensionsPath32>
    </PropertyGroup>
    <Import Project="$(MSBuildExtensionsPath32)\v10.0\WebApplications\Microsoft.WebApplication.targets" />
    

    注意:由于你有v9.0文件夹,你应该从其他机器复制v10.0。

    【讨论】:

    • 嗨,leo,非常感谢您的回复.. :-) 我正在尝试解决这个问题。我是 dot net & visual studio 的新手。我看到了一些关于这个的帖子,他们说要导入 v10.0。你能告诉我如何解决这个问题吗?我无法解决它。在 64 位机器上运行 32 位 MSBuild
    • 您的意思是要解决“名为 MVCWebUIComponent.csproj 的项目文件中不存在目标“Package”的问题?或其他问题?如果是,您做了什么以及如何重现此问题?此外,32 位应用程序可以在 64 位机器上使用。如果您最初的问题不是关于“导入目标包 v10.0”,我建议您可以用更详细的信息描述您的问题,您做了什么,您是如何重复它的,以及新问题的错误信息。跨度>
    猜你喜欢
    • 2016-12-23
    • 2015-11-11
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多