asp.net - AspNet Visual Studio - 合并程序集时出错
问题描述
这发生在 Windows 10 PC 上的 Visual Studio 2019 Community v 16.8.1 上。
我需要帮助来找出在合并程序集步骤期间发布 asp.net 4.7 Web 项目结束时发生的此错误的原因。
“合并程序集时出错:对象引用未设置为对象的实例。”
合并行看起来像 "D:\Repo\project\packages\Microsoft.AspNet.Merge.5.0.0-beta2\tools\net40\aspnet_merge.exe" "D:\Repo\project\obj\Release\AspnetCompileMerge\TempBuildDir " -o WebBuild -copyattrs obj\Release\AssemblyInfo\AssemblyInfo.dll -a
我添加了 -errorstack 来得到这个结果
[NullReferenceException]: Object reference not set to an instance of an object.
at System.Web.Compilation.WebCompilationVisitor.VisitMethodCall(MethodCall call)
at System.Compiler.StandardVisitor.VisitExpression(Expression expression)
at System.Compiler.StandardVisitor.VisitExpressionStatement(ExpressionStatement statement)
at System.Compiler.StandardVisitor.VisitStatementList(StatementList statements)
at System.Compiler.StandardVisitor.VisitBlock(Block block)
at System.Compiler.StandardVisitor.VisitStatementList(StatementList statements)
at System.Compiler.StandardVisitor.VisitBlock(Block block)
at System.Compiler.StandardVisitor.VisitMethod(Method method)
at System.Compiler.StandardVisitor.VisitMemberList(MemberList members)
at System.Compiler.StandardVisitor.VisitTypeNode(TypeNode typeNode)
at System.Web.Compilation.WebCompilationVisitor.VisitClass(Class Class)
at System.Compiler.StandardVisitor.VisitTypeNodeList(TypeNodeList types)
at System.Web.Compilation.WebCompilationVisitor.VisitTypeNodeList(TypeNodeList types)
at System.Compiler.StandardVisitor.VisitModule(Module module)
at System.Compiler.StandardVisitor.VisitAssembly(AssemblyNode assembly)
at System.Web.Compilation.WebCompilationVisitor.VisitAssembly(AssemblyNode assembly)
at ILMerging.ILMerge.Merge()
at System.Web.Compilation.Merge.DoMerge(ILMerge merge)
at System.Web.Compilation.Merge.MergeToSingleAssembly(String outputFile, String[] inputAssemblies, Hashtable assemblyMapping, DirectoryInfo inputDirectory, DirectoryInfo outputDirectory)
at System.Web.Compilation.Merge.Main(String[] args)
但以上都没有告诉我问题是什么。
我已经尝试更新到最新的 Visual Studio(2019 社区 v 16.8.1),我已经从 /local/microsoft 中删除了 visualstudio 和 vscommon 文件夹。重新启动电脑。
此问题在以下 Windows 更新后开始。
https://support.microsoft.com/en-gb/help/4586781/windows-10-update-kb4586781
不确定更新是否起作用,但我可以在更新之前发布。此更新将强制退出 Visual Studio。
谢谢马特
解决方案
似乎运行探查器改变了 web.config
<compilation debug="true" targetFramework="4.7.1" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
从此标签中删除assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
并删除
<dependentAssembly>
<assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<codeBase version="16.0.0.0" href="file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="VsWebSite.Interop" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<codeBase version="8.0.0.0" href="file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio/Shared/Common/VSPerfCollectionTools/vs2019/VsWebSite.Interop.DLL" />
</dependentAssembly>
允许发布工作