我正在使用 VS 2010 并将我们的应用程序升级到 .NET 4。该应用程序以 Excel 为基础构建,我们希望利用 .NET 的一些改进来使用 Excel。但是我遇到了一个奇怪的错误,这似乎是由在通用字典中使用 Excel 互操作对象引起的。这是生成的错误:
C:\MyApp\TheAssembly\MyClass.cs(823,57):
error CS1769: Type 'MyApp\OtherAssemply.IMyController.SheetReports' from assembly 'c:\MyApp\OtherAssemply.\bin\Debug\OtherAssembly.dll'
cannot be used across assembly boundaries because it has a generic type
parameter that is an embedded interop type.
这是有问题的实际财产:
Dictionary<Excel.Worksheet, IReportSheet> SheetReports { get;}
我们不能在通用对象中使用互操作对象吗?如果是这样,这是 .NET 4.0 中的一个严重限制。我尝试将 Embed Interop 属性设置为 false,但这似乎并没有改变任何东西。请让我知道是否有任何解决方法。