如果代码是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) {
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;
});
});
}
ProjectCollection
),而不是通过命令行使用,则必须将从 MSBuild 重定向的程序集版本复制到应用程序的.config
中。只需转到C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe.config
并将整个<runtime>
元素复制到您的.config
中。(也许还要更改“Workaround”部分中的文件路径。)这告诉 MSBuild 使用版本 15 而不是旧版本。(至少在 VS2017 Relase 中有效。) - haindl