2 回答
TA贡献1998条经验 获得超6个赞
我用 try/catch 块包围了 GetCustomUI() 方法重写,并将异常记录到文本文件中。这使我能够访问插件启动时引发的异常。
而且,最重要的是,问题是我有一个额外的 JSON 配置文件,打包的 XLL 没有考虑到该文件,似乎没有直接的方法可以通过 DNA 文件包含它。
将外部文件设置为嵌入资源并从清单资源流中读取它。
在我的特定情况下,我将它用于 DI 服务提供商,并按如下方式构建它:
private IServiceProvider BuildServiceProvider()
{
var serviceCollection = new ServiceCollection();
//Configuration
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.SetBasePath(Directory.GetCurrentDirectory());
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "otherconfig.json";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream)) {
string result = reader.ReadToEnd();
string tempPath = Path.GetTempFileName();
File.WriteAllText(tempPath, result);
builder.AddJsonFile(tempPath);
}
IConfiguration config = builder.Build();
serviceCollection.AddSingleton(config);
//other dependency injection service registration
return serviceCollection.BuildServiceProvider();
}
TA贡献1847条经验 获得超7个赞
如果您要重写该方法GetCustomUI,请添加try...catchon GetCustomUI,然后查看异常详细信息。
[ComVisible(true)]
public class RibbonController : ExcelRibbon
{
public override string GetCustomUI(string RibbonID)
{
try
{
// ...
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
// ...
}
- 2 回答
- 0 关注
- 183 浏览
添加回答
举报