sta*_*ker 397 msbuild .net-4.0 build-server targets dbproj
尝试在构建服务器上构建我的项目给出了以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
几个月前,我在Build Server上安装了Visual Studio 2010,解决了这个问题.但是现在我从头开始设置一个新的服务器,我想知道是否有更好的解决方案来解决这个问题.
Chr*_*s S 204
要回答问题的标题(但不是关于你得到的输出的问题):
将以下文件夹从您的开发计算机复制到您的构建服务器,如果它只是Web应用程序,则会修复此问题
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications
根据构建中断的方式删除x86.如果您有其他项目类型,则可能需要复制整个msbuild文件夹.
Say*_*imi 95
如果未安装VS,则不支持构建和发布WAP.话虽如此,如果你真的不想安装VS那么你需要复制下的所有文件%ProgramFiles32%\MSBuild\Microsoft\.
您还需要安装Web Deploy Tool.我想就是这样.
And*_*y K 75
UPD:从VS2017开始,Build Tools中的工作负载完全消除了这个问题.请参阅@SOReader答案.
如果您不想在构建服务器上修改任何内容,并且仍希望项目能够直接在源代码管理之外构建,那么将所需的二进制文件置于源代码管理之下可能是个好主意.您需要修改项目文件中的imports部分,如下所示:
<Import Project="$(SolutionDir)\BuildTargets\WebApplications\Microsoft.WebApplication.targets" />
<Import Condition="false" Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)
第一行是相对于解决方案目录的新位置的实际导入.第二个是Condition="false"原始行的关闭版本(),允许Visual Studio仍将您的项目视为有效的Web应用程序项目(这是VS 2010 SP1自身的技巧).
不要忘记复制源代码管理下的C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplicationsto BuildTargets文件夹.
小智 68
您还可以使用NuGet包MSBuild.Microsoft.VisualStudio.Web.targets,在Visual Studio项目中引用它们,然后按照Andriy K的建议更改您的引用.
SOR*_*der 66
现在,在2017年,您可以使用MSBuildTools安装WebApplication redists.只需转到此页面即可下载MSBuild 2017工具,安装时单击Web development build tools以安装这些目标:

这将导致C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications默认情况下安装缺少的库
Mat*_*ton 54
基于这篇文章,您只需下载Microsoft Visual Studio 2010 Shell(集成)可再发行组件包并安装目标.
这样就无需在构建服务器上安装Visual Studio.
我现在刚试过这个,并且可以验证它是否有效:
之前:
错误MSB4019:找不到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.
安装后:
[构建正确]
这显然比在构建服务器上安装Visual Studio要好得多.
dan*_*ing 38
最新的Windows SDK,因为除了上面提到的,"微软的Visual Studio 2010壳(集成)再发行组件包"的Microsoft.WebApplication.targets和"Microsoft Visual Studio团队系统2008年数据库版GDR R2"为Microsoft.Data.Schema .SqlTasks.targets应该可以减轻安装Visual Studio 2010的需要.但是,安装VS 2010实际上可能实际上不那么整体下载并且最终减少工作量.
Ale*_* R. 20
在构建/ CI服务器上构建时,Microsoft.WebApplication.targets通过指定完全关闭导入/p:VSToolsPath=''.这实际上会使以下行的条件为假:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Run Code Online (Sandbox Code Playgroud)
这是在TeamCity中完成的:
Dam*_*mon 17
目标:构建代理不需要更改/安装
我在这里采用了Lloyd对NuGet方法的混合方法,该方法基于Andrik提交的二进制依赖解决方案.
我之所以希望能够添加新的构建代理,而不必使用这样的项目预先配置它们.
[solution]\packages\MSBuild.Microsoft.VisualStudio.Web.targets.nn.n.n.n\tools\VSToolsPath\
在版本7中,我执行了以下操作.这可能没有必要,现在绝对不需要根据评论.请参阅下面的评论.
env.VSToolsPath并将其设置为VSToolsPath文件夹; 我用了..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPathKor*_*yem 14
如果将Visual Studio 2012迁移到2013,则使用edior打开*.csproj项目文件.
并检查'Project'标签的ToolsVersion元素.
将其值从4.0更改为12.0
从
Run Code Online (Sandbox Code Playgroud)<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" ...
至
Run Code Online (Sandbox Code Playgroud)<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="12.0" ...
或者如果使用msbuild构建,则只需指定VisualStudioVersion属性
msbuild /p:VisualStudioVersion=12.0
似乎新版本的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" />
Run Code Online (Sandbox Code Playgroud)
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" />
Run Code Online (Sandbox Code Playgroud)
参考链接:https: //alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/
| 归档时间: |
|
| 查看次数: |
256054 次 |
| 最近记录: |