问题描述
我在 VS 2015、2017 和 2019 上遇到过这个问题,所以我相信这不是我的设置所特有的。
aspnet_merge(0,0): Error occurred: An error occurred when merging assemblies: Object reference not set to an instance of an object
这会在以下运行后发生:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\aspnet_merge.exe (project location)\TempPackageBuildDir\obj\Debug\AspnetCompileMerge\TempBuildDir -o (name of assembly) -copyattrs (repository location)\..\..\TempPackageBuildDir\obj\Debug\AssemblyInfo\AssemblyInfo.dll -a -debug
我可以在另一台机器上运行这个完全相同的命令,它运行没有问题。我之前已经能够通过将 website.publishproj 中的输出目录明确设置为
来解决这个问题<PropertyGroup>
<OutputPath>$(MSBuildProjectDirectory)\..\..\TempPackageBuildDir\</OutputPath>
</PropertyGroup>
但几天后问题又回来了。我的机器上缓存了一些不好的东西,我没有足够的知识来知道它是什么。
任何见解将不胜感激,
解决方法
其实,这个问题与你的项目和VS环境有关。请尝试以下步骤:
1) clean all nuget caches 或直接删除 C:\Users\xxx\.nuget\packages
关闭,删除 .vs
隐藏文件夹、bin
和 obj
文件夹。
另外,删除C:\Users\<user>\AppData\Local\Temp\Temporary ASP.NET Files
然后,重启VS,在Tools-->Nuget Package Manager-->Package下运行update-package -reinstall
经理控制台
如果您引用了任何程序集 dll,请先将其删除,然后再重新添加。
确保所有 Merge 的 DLL 都没有损坏。
2)在工具-->导入和导出设置-->重置所有设置下重置所有vs设置强>
3) 禁用任何第三方安装的扩展程序以检查是否有一个导致该问题。
4) repair vs 来自 vs_installer
此外,web.config
文件上的 check whether you have these。如果有,请删除它们。