错误MSB4019 - MSBUILD正在查找不存在的版本

时间:2017-03-20 12:06:22

标签: visual-studio-2015 msbuild sql-server-data-tools visual-studio-2017

当我尝试使用MSBUILD构建我的SSDT项目时,出现以下错误

  

错误MSB4019:导入的项目" C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V11.0 \ SSDT \ Microsoft.Data.Tools.Schema.SqlTask​​s.targets"   没找到

在我的... \ MSBuild \ Microsoft \ VisualStudio文件夹中,我只有V12.0,V14.0和V15.0。 SSDT仅在V14.0中找到。

如何确保MSBuild在正确的位置查找包含?

2 个答案:

答案 0 :(得分:5)

看起来.Net 4.0 msbuild.exe是错误的。

使用msbuild文件夹中的msbuild.exe而不是.Net文件夹解决了这个问题。

%ProgramFiles(x86)%\msbuild\14.0\Bin

答案 1 :(得分:0)

如果代码是cordova,请尝试:

  

找不到Microsoft.VisualStudio.WJProject.Default.props。错误MSB4019

输入platform/windows/cordova/lib,用记事本打开msbuildtools,然后编辑此部分:

var versions = ['15.0', '14.0', '12.0', '4.0'];

使用您的版本。

例如,将删除两个函数中的15和14

var versions = ['12.0', '4.0'];

并删除此行中的|| versions[2] || versions[3]

var msbuildTools = versions[0] || versions[1] || versions[2] || versions[3];
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;
        });
    });
}