gpt4 book ai didi

c# - 无法在 Solidworks 插件中加载文件或装配体

转载 作者:行者123 更新时间:2023-11-30 22:59:56 28 4
gpt4 key购买 nike

我正在尝试使用 AngelSix 的 SolidDna 库创建一个 Solidworks 插件。我按照示例使用了标准设置:

public class Integration : AddInIntegration
{

// All overrides left blank
public override void ApplicationStartup()
{
}

public override void ConfigureServices(FrameworkConstruction construction)
{
}

public override void PreConnectToSolidWorks()
{
}

public override void PreLoadPlugIns()
{
}
}

public class MySolidDnaPlugin : SolidPlugIn
{
public override string AddInTitle { get; } = "foo";
public override string AddInDescription { get; } = "bar";

public override void ConnectedToSolidWorks()
{
// This works fine...
Boo.Lang.List l = new Boo.Lang.List();

// ....But this doesn't :(
Boo.Lang.Compiler.BooCompiler c = new Boo.Lang.Compiler.BooCompiler();
}

public override void DisconnectedFromSolidWorks()
{
}

}

我正在尝试在 Boo 中添加对脚本的支持,以便用户可以即时编辑脚本。我已经添加了对 Boo.Lang.dll、Boo.Lang.Compiler.dll 和 Boo.Lang.Parser.dll 的引用,并且所有 3 个 DLL 都已明确复制到/bin 文件夹。

我可以使用 Boo.Lang 命名空间中的类,但是一旦我尝试使用 Boo.Lang.Compiler 命名空间,它就会抛出一个错误:

Could not load file or assembly 'Boo.Lang, Version=2.0.9.4, Culture=neutral, PublicKeyToken-32c39770e9a21a67' or one of its dependencies. The system cannot file the file specified.

相同的代码/设置在 Solidworks 外部运行时工作正常,例如在控制台应用程序中。

SolidDna 文档显示了使用 regasm.exe/codebase 注册插件 DLL 的过程,因此我尝试使用 3 Boo DLL 运行它,但这没有任何区别。

有什么建议或指示吗?

最佳答案

我的猜测是您将这些二进制文件添加到 addin 文件夹,而进程正在 solidworks.exe 文件夹中查找这些文件。

我建议你用ProcMon确认一下工具。

如果是这种情况,有多种方法可以解决此问题:

1 将这些二进制文件添加到 solidworks 文件夹

2 将这些文件夹添加到路径环境变量中的任意文件夹

3 添加你的插件文件夹到路径环境变量

4 如果这些二进制文件和您的插件都是 .net 程序集,您可以使用 ilmerge 将它们合并为一个。

5 如果您的插件是 .net 程序集并且您有权访问 appdomain 对象,您可以订阅 AssemblyResolve事件并动态提供路径。

关于c# - 无法在 Solidworks 插件中加载文件或装配体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51885894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com