Ole*_*nko 59 c# migration msbuild visual-studio-2017
当我尝试运行命令"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\Microsoft\Fusion!EnableLog].
无法加载文件或程序集"Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.系统找不到指定的文件
Cor*_*ith 100
我们的本地构建脚本使用旧版本的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。
小智 73
我相信我遇到了和你一样的问题(我没有保存整个错误信息,但我的错误信息是
' 无法加载文件或程序集'Microsoft.Build.Framework,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件."
我正在使用Visual Studio 2017,并尝试在Add-Migration之后执行Update-Database.
为解决此问题,我关闭了Visual Studio并重新打开它,然后再次重新运行Update-Database.
这可能会或可能不会解决您的问题,但我想我会发布以防万一它会有所帮助.
小智 38
此问题的根本原因来自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\.
小智 28
我找到了一个似乎可以很好地解决问题的解决方法,至少在运行VS 2017 Professional 15.5.2和Entity Framework 6.1.1的环境中是这样.
基本上,将DLL(带有一些相关的)安装到GAC(全局程序集缓存)中,问题就会消失.
跟着这些步骤:
1-关闭Visual Studio 2017的所有正在运行的实例
2-启动Visual Studio 2017 Developer命令提示符
3-键入以下命令(将Professional替换为您的版本,Enterprise或Community,或相应地调整路径):
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将会消失,因为现在可以通过GAC解析DLL.
同样,它适用于我,它只是一个解决方法,它不会解决核心问题本身,但至少我不必在尝试使用EF迁移时一直重启VS,这对我来说已经足够了.
Alf*_*ace 12
这对我有用 - 从 2020 年开始似乎是一个非支持问题。
在Azure Build Pipeline>NuGet tool installer步骤中,更改Version of NuGet.exe to install为更新的版本,例如5.4.0. 在https://dist.nuget.org/tools.json检查版本。
问题消失了,现在构建成功。
V-S*_*SHY 10
我丢失的文件或程序集版本与问题不同。
当我尝试发布我的 ASP.net 项目时出现此错误
Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Run Code Online (Sandbox Code Playgroud)
我通过安装Microsoft Build Tools 2015解决了这个问题
我认为我的问题是因为我在 VS 2017 中发布了用 VS 2015 构建的项目。希望可以帮助其他有同样问题的人。
以下对我有用:
MSBuildLocator.RegisterDefaults();在实际使用任何 MSBuild 方法之前添加。
要添加它,您需要安装 Microsoft.Build.Locator。不要指定 ExcludeAssets=runtime。安装 Microsoft.Build,并为此指定 ExcludeAssets=runtime。
从https://github.com/microsoft/MSBuildLocator/issues/64找到了此解决方案。
我不喜欢这里的其他一些解决方案,因为它们似乎让您弄乱了比我想要的更多的配置文件。这个解决方案只需添加一行代码并安装一些包:)
当然,其他的也可以!我只是不太相信自己会搞乱配置,以免弄乱其他东西。
小智 5
就我而言,某些东西(可能是 NuGet-Update)确实将 AssemblyBinding 添加到了 web.config 文件中:
<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>
Run Code Online (Sandbox Code Playgroud)
删除该 dependentAssemby-Entry 后,我可以再次发布该项目。
| 归档时间: |
|
| 查看次数: |
26278 次 |
| 最近记录: |