CordovaApp.Windows.jsproj(70,3):错误MSB4019:导入的项目

时间:2017-05-03 20:43:33

标签: visual-studio cordova msbuild windows-10-universal

完整错误日志:

C:\Users\user\Development\Tutorials\cordova-tutorial\hello\platforms\windows\CordovaApp.Windows.jsproj(70,3): error MSB4019: The imported project "C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Microsoft.VisualStudio..Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe: Command failed with exit code 1

在从Cordova官方网站上做Create your first app教程时,在构建helloworld应用程序时,我收到了上面发布的错误。

我正在从命令行构建cordova项目并使用Visual C++ 2015 Build Tools和Windows 10 SDK - 而不是使用内置工具的Visual Studio。 为什么?因为我当前项目的一部分,是准备用于使用Cordova构建Windows 10 UAP应用程序的开发环境,而无需安装Visual Studio。

这里的任何人在没有安装Visual Studio工具的情况下构建Cordova Windows项目时会遇到相同或类似的问题吗?

为什么我需要这样做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

  

这里的任何人在没有安装Visual Studio工具的情况下构建Cordova Windows项目时会遇到相同或类似的问题吗?

据我所知,丢失的目标文件与Visual Studio一起安装,而不是MSBuild Tools

我创建了一个空白的win10环境(测试机器)并安装了两个MSBuild工具也是Windows 10 SDK,我遇到了你遇到的问题,找不到Microsoft.VisualStudio.WJProject.Default.props

然后我检查了我的原始机器(安装了Visual Studio 2015),包含正确目标文件的文件夹(C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ JavaScript)创建于与安装Visual Studio的日期相同。

所以Visual Studio安装了我们没有安装的东西。我试图将MSBuild文件夹从我的原始机器复制到测试机器,错误MSB4019已经解决,但是我又遇到了另一个错误:

  

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \ JavaScript的\ Microsof   t.VisualStudio.JavaScript.UAP.targets(82,3):错误:“10.0.14393.0”   不是TargetPlatformVersion支持的值。请改变它   在Project Prop erty页面上。

在搜索Internet之后,TargetPlatformVersion与Windows SDK版本相关,然后我将值更改为项目文件中的Windows SDK版本,但此错误仍然存​​在。

显然,构建Cordova Windows项目的最简单的方法是安装Visual Studio。如果你想让它在没有Visual Studio的情况下工作,有时需要做很多工作。您需要安装正确的Windows / .NET Platform SDK。您可以并排安装多个这些SDK。您可能需要安装更多SDK才能使您的应用程序进行编译。这些的下载都假设您还安装了Visual Studio,但是它们的许多有效负载也可以单独安装。这可能会变得很麻烦。

希望这可以帮到你。

答案 1 :(得分:0)

&#34;找不到Microsoft.VisualStudio.WJProject.Default.props。 错误MSB4019

进入平台/ windows / cordova / lib,用记事本打开msbuildtools并编辑此部分: 很简单,你将编辑&#34; var版本= [&#39; 15.0&#39;,&#39; 14.0&#39;,&#39; 12.0&#39;,& #39; 4.0&#39;];&#34;与你的版本一起。

例如,

将删除两个函数中的15和14 var versions = [&#39; 12.0&#39;,&#39; 4.0&#39;];

并删除&#34; ||版本[2] ||版本[3]&#34;在这一行 var msbuildTools = versions [0] ||版本[1] ||版本[2] ||版本[3];

&#34;

module.exports.findAvailableVersion = function () {
var versions = ['15.0', '14.0', '12.0', '4.0'];

    return Q.all(versions.map(checkMSBuildVersion)).then(function (versions) {
        // select first msbuild version available, and resolve promise with it
        var msbuildTools = versions[0] || versions[1] || versions[2] || versions[3];

        return msbuildTools ? Q.resolve(msbuildTools) : Q.reject('MSBuild tools not found');
    });
};

function findAllAvailableVersionsFallBack() {
    var versions = ['15.0', '14.0', '12.0', '4.0'];
    events.emit('verbose', 'Searching for available MSBuild versions...');

    return Q.all(versions.map(checkMSBuildVersion)).then(function(unprocessedResults) {
        return unprocessedResults.filter(function(item) {
            return !!item;
        });
    });
}    "