ChatGPT解决这个技术问题 Extra ChatGPT

在构建服务器上找不到 Microsoft.WebApplication.targets。你的解决方案是什么?

尝试在构建服务器上构建我的项目会给我以下错误:

Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

几个月前,我通过在 Build Server 上安装 Visual Studio 2010 解决了这个问题。但是现在我正在从头开始设置一个新服务器,我想知道是否有更好的解决方案来解决这个问题。

Web 应用程序项目是否已弃用?我想知道需要旧版本的 Visual Studio 来构建它们的理由是什么?
更重要的是,您实际上是通过构建服务器进行部署的吗?例如我没有,我什至在解决方案中有一个单独的 Web 安装程序项目......它仍然想要这个该死的东西......回答 = 从 proj 文件中删除它!简单的。
通过将 <Import Project="..\Packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" /> 路径替换为 $(VSToolsPath) 来修复:<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" />

C
Chris S

要回答问题的标题(但不是关于您得到的输出的问题):

如果只是 Web 应用程序,将以下文件夹从您的开发机器复制到您的构建服务器可以解决此问题

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications

根据构建中断的方式删除 x86。如果您有其他项目类型,您可能需要复制整个 msbuild 文件夹。


在将 v10.0 替换为 v11.0 之后,这适用于具有 VS2012 项目的 m2
我们不能只安装 MSBuild 工具而不是这个吗? microsoft.com/en-us/download/confirmation.aspx?id=40760
唉,安装 MSBuild 工具不足以构建在 VisualStudio 2013 中编译良好的项目
在安装 VS2013 后,我不得不将 Web 文件夹复制到 v11.0 以使其工作,但它在那里丢失了。可以在 VS 中编译,但不能直接通过 MSBUILD 编译。
为VS2017工作。只需将 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\vXX.0\WebApplications 复制到 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
S
SOReader

解决方案是在构建服务器代理上安装可再发行包。它可以通过多种方式完成,下面将介绍其中的 3 种。选择一个最适合你的。

使用带有 UI 的安装程序

这是原来的答案

https://i.stack.imgur.com/LcxXq.png

默认情况下,这将导致在 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications 中安装缺少的库

使用命令行

免责声明我没有测试过以下任何提案

正如@PaulHicks 和@WaiHaLee 在评论中建议的那样,它也可以从 CLI 以无头模式(无 ui)安装,这实际上可能是解决删除服务器问题的更好方法。

解决方案 A - 使用包管理器 (choco)

choco install visualstudio2017-workload-webbuildtools

解决方案 B - 以无头模式运行安装程序注意,这与原始答案中建议使用的安装程序相同

vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools --passive

我很惊讶,我五岁的孩子关于将库打包到源代码控制中,即使在今天,它的修改仍然得到投票,而这是开箱即用的正确答案。
@AndriyK您的解决方案与我的建议有些不同,我理解为什么有人可能更喜欢您的解决方案而不是我的解决方案...除非只是懒惰;D
为了更通用,对于 Visual Studio 的未来版本,您可以从 visualstudio.microsoft.com/downloads 下载最新的构建工具 向下滚动页面并在底部附近展开“Visual Studio 工具”部分,然后下载“Visual Studio 构建工具”工作室”。目前这些适用于 VS 2017,但我认为未来版本将是相同的。顺便说一句,如果您需要 CI 工具(例如 Jenkins)的 msbuild.exe 的路径,对于 VS 2017,它将安装在 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0 \Bin\msbuild.exe 。
执行此操作的构建服务器兼容(阅读:命令行)方式是 choco install visualstudio2017-workload-webbuildtools
另请注意,可以通过命令行调用 vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools 来安装 "Web development build tools" packageMicrosoft.VisualStudio.Workload.WebBuildTools。添加 --passive 以不需要用户干预。
A
Abel

如果未安装 VS,则不支持构建和发布 WAP。话虽如此,如果您真的不想安装 VS,那么您需要复制 %ProgramFiles32%\MSBuild\Microsoft\ 下的所有文件。

您还需要安装 Web Deploy Tool。我想就是这样。


Sayed - 请参阅下面来自 dansomething 的答案 - 你的答案是否正确?即使安装了 VS 2010 Shell 集成包,.NET SDK 也不会正确安装 Web Application 项目支持?
@SayedIbrahimHashimi 如果您进行手动文件夹复制,您是否必须向 GAC 注册 DLL?
那么 Microsoft.TextTemplating.targets 呢?我该怎么做才能让他们进入他们的文件夹? C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0
@ClarkKent,抱歉,我无法与 TextTemplating 文件交谈。我不熟悉那些。
所以我必须在我的构建服务器上安装 IDE 才能部署?微软是个笑话吧?
A
Andriy K

UPD:从 VS2017 开始,Build Tools 中的工作负载完全消除了这个问题。请参阅@SOReader answer

如果您不想修改构建服务器上的任何内容,并且仍然希望项目直接在源代码控制之外构建,那么将所需的二进制文件置于源代码控制之下可能是个好主意。您需要将项目文件中的导入部分修改为如下所示:

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

第一行是从相对于解决方案目录的新位置实际导入。第二个是原始行的关闭版本 (Condition="false"),它允许 Visual Studio 仍将您的项目视为有效的 Web 应用程序项目(这是 VS 2010 SP1 本身所做的技巧)。

不要忘记将 C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplications 复制到您的源代码管理下的 BuildTargets 文件夹。


这个解决方案对我有用,对我来说确实是最好的选择。这是因为我无权访问构建服务器。我正在使用 Atlassian 的弹性竹子,它启动了一个新服务器来充当构建服务器。这些 AMI 乍一看并没有包含 Web 应用程序目标?这对我来说没有意义,但看起来就是这样。
这是一个很好的方法,但是这种更改需要更改每个 csproj 文件。如果您将新项目添加到解决方案中,这很棘手。当然可以使用自定义项目模板来解决,但仍然......无论如何,这个答案为我指明了正确的方向。谢谢!
K
Kobi

您还可以使用 NuGet 包 MSBuild.Microsoft.VisualStudio.Web.targets,在您的 Visual Studio 项目中引用它们,然后按照 Andriy K 的建议更改您的引用。


无法使用,因为我必须先打开解决方案,但由于错误而无法使用。
如果解决方案中有多个项目,您应该仍然能够 1. 打开解决方案 - 忽略 Web 项目未加载; 2.添加nuget引用; 3.采取后述的方法之一;您可以手动编辑项目文件,或覆盖 TeamCity 中的 env.VSToolsPath 变量。
这是一个正式发布的 MS nuget 包,还是有人刚刚创建它?
绝妙的解决方案 - 适用于不同版本的 VS。我需要编辑 .csproj 文件 YMMV
它不是正式发布的 Microsoft nuget 包。我知道它,因为我创造了它。
M
Mark Lagendijk

基于 this post here,您只需下载 Microsoft Visual Studio 2010 Shell (Integrated) Redistributable Package 并安装目标。

这避免了在构建服务器上安装 Visual Studio 的需要。

我现在刚刚尝试过,并且可以验证它是否有效:

前:

错误 MSB4019:未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。

安装后:

[正确构建]

显然,这比在构建服务器上安装 Visual Studio 要好得多。


这是 IMO 最简单和最简单的解决方案。我正在使用 VS 2013,我发现 Visual Studio 2013 Shell (Isolated) Redistributable 是有效的(集成的由于依赖于独立的而无法安装)。
@MatthewSkelton - 构建服务器的含义是什么?
@BountyMan - 构建服务器是承担或控制软件持续集成 (CI) 构建的服务器。示例:Jenkins、TeamCity、CruiseControl 等。
不幸的是,使用 VS v14.0,安装包的方法是通过 nuget,但由于我的问题是构建服务器没有安装 VS(只有 MSBuild),安装包被证明几乎是不可能的。在简单地将文件夹从我的 PC 复制到服务器之前,我花了几个小时摸索 PowerShell 和 Nuget 的各种半支持安装。
@pasx 如果错误消息包含“v14”,您可以安装 Visual Studio 2015 隔离 Shell,为我工作 - visualstudioextensibility.com/downloads/vs-shells(在“下载 URL”下;有一个强制性调查,享受!)
d
dansomething

如上所述,除了用于 Microsoft.WebApplication.targets 的 "Microsoft Visual Studio 2010 Shell (Integrated) Redistributable Package" 和用于 Microsoft.Data.Schema.SqlTasks.targets 的 "Microsoft Visual Studio Team System 2008 Database Edition GDR R2" 之外,最新的 Windows SDK 应该可以减少安装 Visual Studio 2010 的需要。但是,安装 VS 2010 年的下载量实际上可能会减少,最终的工作量也会减少。


仅供参考 - 如果您尝试在构建服务器上构建 Sql 项目而没有安装完整的 VS,那么您对此处提到的 Team System 2008 Database Edition GDR R2 安装程序不走运。它的先决条件是 Visual Studio Team System 2008 Database Edition SP1(英语)或 Visual Studio Team System 2008 Suite SP1(英语)和 Visual Studio 2008 Service Pack 1。但是您似乎可以将 SqlServer.targets 复制出 .NET Framework\ v4 目录和 TeamData msbuild 目标文件来自 \program files\msbuild\microsoft\visual studio\v10.0\ 并且您的 csprojs 将构建。
这绝对不是最漂亮的解决方案,但对我来说时间是最重要的。简单地复制 MSBuild 目录只会给我带来更多问题。
这是一个非常重要的答案,因为如果您是为客户端设置构建服务器的独立开发人员,您不希望客户端必须维护 Visual Studio 许可证才能构建他们的软件。
我只需要 VS2010 shell 集成包和 EntLib 5 来构建我的。不需要团队系统。
VS 2010 Shell 在该链接中不再可用,“您要查找的资源已被删除、名称已更改或暂时不可用。”。
D
Damon

通过 NuGet 添加依赖项并设置构建参数

目标:构建代理不需要更改/安装

我对 NuGet approach by Lloyd here 采用了混合方法,它基于 committing binary dependencies solution by Andrik.

原因是我希望能够添加新的构建代理,而不必使用诸如此类的项目预先配置它们。

在装有 Visual Studio 的机器上,打开解决方案;忽略 web 项目失败。在 NuGet 包管理器中,添加 MSBuild.Microsoft.VisualStudio.Web.targets,如 Lloyd 所述。这会将二进制文件解析为 [solution]\packages\MSBuild.Microsoft.VisualStudio.Web.targets.nn.nnn\tools\VSToolsPath\ 您可以将它们复制到引用文件夹并提交,或者仅在它们所在的位置使用它们。我选择了这个,但是稍后我将不得不处理路径中的版本号。

在第 7 版中,我执行了以下操作。这可能没有必要,根据评论,现在绝对不需要。请参阅下面的评论。

接下来,在您的 TeamCity 构建配置中,为 env.VSToolsPath 添加构建参数并将其设置为 VSToolsPath 文件夹;我使用 ..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath


如果您只是替换 <Import> 则无需执行第 4 步项目文件中的元素:<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
这应该是公认的答案......并且应该删除第 4 点。
@Izzy 谢谢,您是否按照 knocte 的指示进行了评论?几年没用过TC,版本7 iirc。
@Damon我使用的是Jenkins而不是TC,所以这可能就是我不需要你最后一点的原因。
A
Alex R.

在构建/CI 服务器上构建时,通过指定 /p:VSToolsPath='' 完全关闭 Microsoft.WebApplication.targets 的导入。从本质上讲,这将使以下行的条件为假:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

这就是它在 TeamCity 中的完成方式:

https://i.stack.imgur.com/7XSQE.png


如果您使用 Visual Studio 的“发布”机制,则构建目标是必需的。这样做允许编译继续并完成,但是,它可能是不完整的。
L
Luke

如果将 Visual Studio 2012 迁移到 2013,则使用 edior 打开 *.csproj 项目文件。并检查“项目”标签的 ToolsVersion 元素。

将其值从 4.0 更改为 12.0

或者,如果您使用 msbuild 构建,则只需指定 VisualStudioVersion 属性

msbuild /p:VisualStudioVersion=12.0

Solution Source


将 /p:VisualStudioVersion=12.0 添加到 TFS 2013 构建定义中的 MSBuild Arguments(对于在 Visual Studio 2013 中创建的解决方案)对我有用。出于某种原因,它会在不带任何参数的 v11.0 文件夹中查找文件。
该解决方案对我有用,我使用了该命令:msbuild /p:Platform=x86 /p:VisualStudioVersion=12.0
H
Huy Truong

似乎新版本的 msbuild 不附带 Microsoft.WebApplication.targets。要修复,您需要更新您的 csproj 文件,如下所示:

1) 编辑 Web 应用程序 csproj(右键单击)。在 csproj 的底部找到有关构建工具的部分。它应该看起来像这样。

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
</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" />  

2)您需要在 VisualStudioVersion 标签下方添加一个 VSToolsPath 行,使其看起来像这样

<PropertyGroup>  
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <!--Add the below line to fix the project loading in VS 2017 -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  <!--End -->
</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" />  

参考链接:https://alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/


S
Simon_Weaver

这就是你所需要的。只有 103MB。不要安装所有东西

https://i.stack.imgur.com/FEnvJ.png


我如何能够在该表格上打勾而不安装任何东西?
s
stacker

我在 MS connect 上找到了这个:

是的,您需要在构建机器上安装 Visual Studio 2010 才能构建数据库项目。这样做不需要额外的 Visual Studio 许可证。

所以,这是我目前唯一的选择。


链接似乎已损坏。
H
Habib

任何人来这里参加 Visual Studio 2017。我遇到了类似的问题,更新到 15.6.1 后无法编译项目。我必须安装 MSBulild 工具,但错误仍然存在。

我能够通过将 v14.0 文件夹从 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 复制到与 v15.0 相同的文件夹来解决此问题,并且解决了所有错误。所以现在我的文件夹结构如下所示,两个文件夹包含相同的内容。

https://i.stack.imgur.com/BKRy0.png


A
Ali

如果您使用的是 MSBuild,例如构建服务器,那么对我有用的是:

更改以下内容:

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

至:

<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

我的 Msbuild 命令是:*"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" solution.sln /p:Configuration=Debug /p:Platform="Any CPU"*

希望这可以帮助某人。


值得一提的是,应该对有问题的 .csproj、vbproj 文件进行更改。
K
Kat Lim Ruiz

我的解决方案是这里的几个答案的混合。

我检查了构建服务器,并且已经安装了 Windows7/NET4.0 SDK,所以我确实找到了路径:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets`

但是,在这一行:

$(MSBuildExtensionsPath) 扩展到没有路径的 C:\Program Files\MSBuild。

因此,我所做的是使用以下命令创建一个符号链接:

mklink /J "C:\Program Files\MSBuild\Microsoft\VisualStudio" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio"

这样 $(MSBuildExtensionsPath) 扩展为有效路径,应用程序本身不需要更改,只需在构建服务器中(也许可以在每次构建时创建符号链接,以确保此步骤不会丢失并且“记录在案” ”)。


M
MonoThreaded

我通过将
/p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"

添加到
Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments 来解决此问题


C
Community

我尝试了一堆解决方案,但最后这个答案对我有用:https://stackoverflow.com/a/19826448/431522

它基本上需要从 MSBuild 目录而不是 Visual Studio 目录调用 MSBuild。

我还将 MSBuild 目录添加到我的路径中,以使脚本更易于编码。


c
ccoutinho

我在 CI/CD 管道上构建 SQL Server 项目时遇到了这个问题。事实上,我在本地也有它,但我没有设法解决它。

对我有用的是使用 MSBuild SDK,它能够从一组 SQL 脚本生成 SQL Server 数据层应用程序包 (.dacpac),这意味着创建一个新项目。但我想保留 SQL Server 项目,以便可以通过 Visual Studio 上的 SQL Server 对象资源管理器将其链接到实时数据库。我采取了以下步骤来启动并运行它:

使用 .sql 数据库脚本保留我的 SQL Server 项目。根据上述链接中的指南,创建了一个 .NET Standard 2.0 类库项目,确保目标框架是 .NET Standard 2.0。将 .csproj 的内容设置如下: Sql140 netstandard2.0 我选择 Sql140 作为 SQL Server 版本,因为我使用的是 SQL Server 2019。检查此答案以找出与版本的映射您正在使用。在构建时忽略 SQL Server 项目,以便它停止在本地中断(它确实在 Visual Studio 上构建,但在 VS Code 上失败)。现在我们只需要确保 .sql 文件在构建时位于 SDK 项目中。我通过 CI/CD 管道上的一个简单的 powershell 例程实现了这一点,它将文件从 SQL Server 项目复制到 SDK 项目:

Copy-Item -Path "Path.To.The.Database.Project\dbo\Tables\*" -Destination (New-item -Name "dbo\Tables" -Type Directory -Path "Path.To.The.DatabaseSDK.Project \")

PS:这些文件必须物理上位于 SDK 项目中,无论是在根目录中还是在某个文件夹中,因此指向 SQL Server 项目中 .sdk 文件的链接将不起作用。从理论上讲,应该可以在预构建条件下复制这些文件,但由于一些模糊的原因,这对我不起作用。我还尝试在 SDK 项目中包含 .sql 文件并将它们链接到 SQL Server 项目,但这很容易破坏与 SQL Server 对象资源管理器的链接,因此我决定也删除它。


A
Arsen Khachaturyan

如果您尝试使用 VSTS 部署项目,则问题可能与检查“Hosted Windows Container”选项而不是“Hosted VS2017”(或 18 等)有关:

https://i.stack.imgur.com/PJNvj.png


P
Pankaj Awasthi

安装 Microsoft 的 MSBuild 工具后,在环境变量中定义 MSBuild 路径,以便可以从任何路径运行。

在任何记事本编辑器(例如 notepad++)中编辑 .csproj 文件,并注释

检查以下元素,--> 确保只使用一次 import,选择哪个有效。确保驱动器上存在以下文件夹,“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0”或 MSBuild 目标在“C:\Program Files (x86) 引用的任何版本” \MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" 在命令提示符下,运行以下命令,检查

确保您只使用一次导入,选择哪个有效。

确保驱动器上存在以下文件夹,“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0”或 MSBuild 目标在“C:\Program Files (x86) 引用的任何版本” \MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets"

在命令提示符下,运行以下命令,以检查

C:>msbuild "C:\\DotnetCi.sln" /p:Configuration=Release /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

根据需要选择 /p 开关,参考在此处输入链接描述 在此处输入图像描述


w
wilmol

我通过在 docker 容器(特别是 dotnet/framework/sdk)中运行构建来解决此问题。它包括 VS 构建工具。


b
broll

创建一个新项目并复制设置可能会提供最好的指导。这是我的样子

  <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" />

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅