当我尝试运行命令“update-database”时,我得到了这个例外:
指定'-Verbose'标志以查看正在应用的SQL语句 到目标数据库。 System.IO.FileNotFoundException:无法 加载文件或程序集'Microsoft.Build.Framework,Version = 15.1.0.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一个 依赖。该系统找不到指定的文件。文件名: 'Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'
警告:装配绑定日志记录已关闭。要启用程序集绑定 失败日志记录,设置注册表值 [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有 与程序集绑定失败相关的一些性能损失 日志记录。要关闭此功能,请删除注册表值 [HKLM \ SOFTWARE \微软\融合!EnableLog]。
无法加载文件或程序集'Microsoft.Build.Framework, Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或 其中一个依赖项。系统找不到指定的文件。
答案 0 :(得分:99)
我们的本地构建脚本正在使用nuget.exe
(4.7.1.5393
)的旧版本来还原NuGet软件包。更新到Visual Studio 2019版本16.5.0
后,我们开始出现此错误。更新到最新版本的nuget.exe
(5.4.0.6315
)为我们解决了这个问题。
nuget.exe
可以在这里下载:https://www.nuget.org/downloads。
答案 1 :(得分:62)
我相信我遇到了和你一样的问题(我没有保存整个错误信息,但我的错误信息是
' 无法加载文件或程序集' Microsoft.Build.Framework, Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'要么 其中一个依赖项。系统找不到指定的文件。'
我正在使用Visual Studio 2017,并且在添加迁移后尝试执行Update-Database。
要解决此问题,我关闭Visual Studio并重新打开它,然后重新运行Update-Database。
这可能会或可能不会解决您的问题,但我认为我会发布以防万一它会有所帮助。
答案 2 :(得分:33)
此问题的根本原因来自devenv.exe.config
文件中的相对路径Microsoft.Build.Framework.dll
(请参阅xml标记)。
某些Visual Studio Extensions正在更改当前目录并使相对路径无效。
要解决此问题,请在C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\
目录中打开此文件。并按..\..\MSBuild\15.0\Bin\
替换所有C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\
。
答案 3 :(得分:26)
我找到了一个似乎可以解决问题的解决方法,至少在运行VS 2017 Professional 15.5.2和Entity Framework 6.1.1的环境中是这样。
基本上,将DLL(带有一些相关的DLL)安装到GAC(全局程序集缓存)中,问题就会消失。
请按照以下步骤操作:
1-关闭所有正在运行的Visual Studio 2017实例
2-启动Visual Studio 2017 Developer命令提示符
3-键入以下命令(将Professional替换为您的版本,企业版或社区版,或相应地调整路径):
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Framework.dll"
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.dll"
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Engine.dll"
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Conversion.Core.dll"
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Tasks.Core.dll"
gacutil / i" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Utilities.Core.dll"
4-重新启动Visual Studio 2017
从本质上讲,当.NET试图加载DLL时,GAC将(在大多数情况下)优先使用,而FileNotFoundException将会消失,因为您的DLL现在将通过GAC解析。
同样,它对我有用,它只是一种解决方法,它不会解决核心问题本身但至少我不必在尝试工作时一直重启VS使用EF迁移,这对我来说已经足够了。
答案 4 :(得分:11)
这对我有用-从2020年开始似乎是一个非支持性问题。
在NuGet tool installer
> Version of NuGet.exe to install
步骤中,将5.4.0
更改为较新的版本,例如void return_array_byref((char[]) & device, (char[]) & command)
{
device = malloc(8 * sizeof(char));
device[0] = 'C';
device[1] = '\n';
command= malloc(8 * sizeof(char));
command[0] = 'C';
command[1] = '\n';
}
void loop() {
char * device;
char * command;
return_array_byref(device, command);
...
}
。在https://dist.nuget.org/tools.json上检查版本。
问题消失了,现在可以成功构建了。
答案 5 :(得分:3)
答案 6 :(得分:2)
关闭和重新打开,Visual Studio就像一个吊饰!
答案 7 :(得分:2)
在我的情况下,某些东西(可能是NuGet更新)确实向Web.config-File中添加了AssemblyBinding:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
在删除了dependentAssemby-Entry之后,我可以再次发布项目。
答案 8 :(得分:2)
这对我有用: 当我执行nuget restore命令时发生错误。 Nuget版本4.6.2。我有两种方法可以解决这个问题。
使用Nuget 4.8.2及更高版本。 gacutil / i“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ Microsoft.Build.Framework.dll
答案 9 :(得分:1)
我们遇到了这个问题,以下是我们需要做的事情:
问题是我们配置了一个名为(IDbCommandInterceptor)
的数据库命令拦截器HttpRuntime.Cache["somekey"
,由于某种原因,迁移命令因此无法运行。删除此依赖性后,所有命令都运行完美。也许HttpRuntime
无法找到Build Framework dll?
因此,当迁移命令无法查看是否存在类似问题时,请检查整个 callstack 。
答案 10 :(得分:1)
我丢失的文件或程序集版本与问题有所不同。
当我尝试发布ASP.net项目时出现此错误
Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
我通过安装Microsoft Build Tools 2015
解决了该问题我认为我的问题是由于我在VS 2017中发布了使用VS 2015构建的项目而引起的。希望可以帮助遇到同样问题的其他人。
答案 11 :(得分:0)
我在我的 web.config
中有这部分,然后简单地将其删除,然后它就开始工作了 :)
<compilation debug="true" targetFramework="4.5.2">
<assemblies>
<add assembly="Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
答案 12 :(得分:0)
我重新启动,然后我发现我一直在运行的本地 Web 服务被另一个占用该端口的进程阻止。我检查了正在运行的进程并使用 TCPView 终止了该进程,并且所有进程似乎都重新开始工作。
答案 13 :(得分:0)
尝试了所有上述方法和更多方法后-对我来说,运行var zip = new JSZip();
var count = 0;
var zipFilename = "zipFilename.zip";
var urls = [
'http://image-url-1',
'http://image-url-2',
'http://image-url-3'
];
urls.forEach(function(url){
var filename = "filename";
// loading a file and add it in a zip file
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file(filename, data, {binary:true});
count++;
if (count == urls.length) {
var zipFile = zip.generate({type: "blob"});
saveAs(zipFile, zipFilename);
}
});
})
应用仍然失败。错误:WCF
..
注意:尝试重新启动VS,PC,终止进程,清理VS缓存,nuget缓存,obj,bin,.vs,程序包文件夹
对我有用的是删除项目的Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0
文件。显然,其中有一些过时的配置。花费了4个小时才弄清楚。.
答案 14 :(得分:0)
答案 15 :(得分:0)
在macOS上更新XCode / Mono组件时,我也遇到了同样的问题。
解决方案是将Visual Studio for Mac更新到最新版本。
我认为此问题是使用从.NET Core 3.0软件包中安装新XCode / Mono版本的新MSBuild工具引起的。
答案 16 :(得分:0)
感谢那些已经发布的人。结合以上方法解决了我的情况。我有多个版本的Visual Studio:2015、2017、2019。在某些时候,MSBUILD的版本从15.1增至15.9。我通过更新C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ devenv.exe.config文件来解决此问题以指向15.9库。这是条目之一的示例:
答案 17 :(得分:0)
模型中的复杂类型也可能导致此问题。例如:如果您的模型中有列表。