如果是单独新建一个项目不会报错,但是在公司原有项目中新建一个模块,执行同样的代码就报错,网上查了好久也没找到解决办法,求大神们指点
错误:只能在同源AppDomain中执行动态操作
Microsoft.Office.Interop.Excel.Application exAppl = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook wbb = exAppl.Workbooks.Add(Missing.Value); Microsoft.Office.Interop.Excel._Worksheet worksheet = wbb.Worksheets[1]; ///这句报的错
应该不是代码的问题,是项目工程的问题,但是我不知道问题出在哪,新建项目不报错,引用的也是同一个Microsoft.Office.Interop.Excel.dll
“只能在同源AppDomain中执行动态操作”对应的英文错误是
dynamic operations can only be performed in homogenous appdomain
这个问题与安全策略有关,试试 Excel dynamic operations can only be performed in homogenous appdomain error 中提到的解决方法,在 app.config 中添加如下的设置试试:
<configuration> <runtime> <NetFx40_LegacySecurityPolicy enabled="true"/> </runtime> </configuration>
原来app.config中就有这个设置,但是我把这个设置删除就不报错了,不明白是什么原理
@ku:k: 欲知详情,google 'NetFx40_LegacySecurityPolicy'
好像是dll的问题,那个问题挺多的,推荐你看看NPOI,导出Excel和Word简单好用
有时间一定研究下,但是这个是以前的老项目,只能用Microsoft.Office.Interop.Excel.dll
啊欧~~!!跨应用程序集了.?
变量传递的问题吧.?跨应用程序集操作变量本身就会有变量丢失的各种问题....
没有跨程序集,也没有变量传递,应该就是上面说的与安全策略有关