Sar*_*ger 200 c# web-applications build visual-build-professional visual-studio-2013
我正在通过命令行而不是在Visual Studio 2013中构建项目.注意,我已将项目从Visual Studio 2012升级到2013.项目在IDE中构建良好.另外,我首先完全卸载了VS2012,重新启动并安装了VS2013.我拥有的唯一Visual Studio版本是2013 Ultimate.
ValidateProjects:
39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.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.
39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.
Run Code Online (Sandbox Code Playgroud)
以下是有问题的两条线:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Run Code Online (Sandbox Code Playgroud)
原来的第二行是v10.0,但我手动将其更改为v12.0.
$(VSToolsPath)从我看到的扩展到v11.0(VS2012)文件夹,显然已不存在了.路径应该是v12.0.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\
Run Code Online (Sandbox Code Playgroud)
我尝试在系统环境变量表中指定VSToolsPath,但外部构建实用程序仍使用v11.0.我尝试在注册表中搜索,但没有提到任何内容.
遗憾的是,我没有看到任何简单的方法来获得使用的确切命令行.我使用构建工具.
思考?
gia*_*min 250
我有同样的问题,找到一个更简单的解决方案
这是由于Vs2012在csproj文件中添加了这一部分:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
您可以安全地删除该部分,您的解决方案将构建.
正如Sielu指出的那样,你必须确保.proj文件
<Project ToolsVersion="12"
在下次用visual studio 2010打开项目时开始,否则它将再次添加删除的节点.
否则,如果您需要使用webdeploy或使用构建服务器,则上述解决方案将无效,但您可以VisualStudioVersion
在构建脚本中指定该属性:
msbuild myproject.csproj /p:VisualStudioVersion=12.0
Run Code Online (Sandbox Code Playgroud)
或编辑您的构建定义:
Ral*_*sen 70
我也有这个,您可以通过在构建定义中设置工具版本来修复它.
这很容易做到.打开构建定义并转到" Process "页面.然后在" 3. Advanced "组下,您有一个名为" MSBuild Arguments " 的属性.使用以下语法将参数放在那里
/p:VisualStudioVersion=12.0
Run Code Online (Sandbox Code Playgroud)
如果您有更多参数,请用空格而不是逗号分隔它们.
Jes*_*ter 50
这是密切相关的,但可能会或可能不会修复OP的具体问题.就我而言,我试图使用VS2013自动部署Azure站点.但是,通过VS工作构建和部署,使用MSBuild在"目标"周围显示了类似的错误.事实证明MSBuild在VS2013下是不同的,现在是VS的一部分而不是.Net Framework(参见http://timrayburn.net/blog/visual-studio-2013-and-msbuild/).基本上,使用正确版本的MSBuild:
老,VS2012
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
Run Code Online (Sandbox Code Playgroud)
新的,VS2013
C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe
Run Code Online (Sandbox Code Playgroud)
更新,VS2015
C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe
Run Code Online (Sandbox Code Playgroud)
更新,VS2017(没有完全测试但发现 - 他们已经移动了一些东西)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe
Run Code Online (Sandbox Code Playgroud)
Sar*_*ger 22
我刚收到Kinook的回复,他给了我一个链接:
基本上,我需要在建造之前调用以下内容.我想Visual Studio 2013不会首先自动注册环境,但2012年确实如此,或者我做了并忘了.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
Run Code Online (Sandbox Code Playgroud)
希望这篇文章可以帮助别人.
小智 21
giammin的解决方案部分不正确.您不应该从解决方案中删除整个PropertyGroup.如果这样做,MSBuild的"DeployTarget = Package"功能将停止工作.此功能依赖于正在设置的"VSToolsPath".
<PropertyGroup>
<!-- VisualStudioVersion is incompatible with later versions of Visual Studio. Removing. -->
<!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> -->
<!-- VSToolsPath is required by MSBuild for features like "DeployTarget=Package" -->
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Run Code Online (Sandbox Code Playgroud)
Sco*_*ott 10
我的FSharp目标有这个问题(FSharpTargetsPath为空).
许多路径都是参考VS版本构建的.
由于各种原因,我们的构建以系统权限运行,环境变量"VisualStudioVersion"仅在"用户"级别设置(由VS 2013安装程序) - 这是公平的.
确保在您运行的级别(系统或用户)上将" VisualStudioVersion
"环境变量设置为" 12.0
".
归档时间: |
|
查看次数: |
170932 次 |
最近记录: |