【问题标题】:Can Matlab hold a strong-name reference to a .NET assembly?Matlab 可以持有对 .NET 程序集的强名称引用吗?
【发布时间】:2017-01-24 21:53:54
【问题描述】:

我有一个 Matlab 生成的 .exe,它需要引用强命名、GAC 安装的 .NET 程序集中的功能。从这里:Mathworks help site 我看到参考看起来像这样:function Foo() NET.addAssembly('MyAssembly'); … end 但我在他们的文档中找不到任何关于如何使参考变得强大的描述......任何人都可以生成具有相同名称的强命名程序集命名并将其安装在 GAC 中以欺骗真实程序集。这些引用注定是不安全的吗?

【问题讨论】:

    标签: .net matlab strongname


    【解决方案1】:

    https://www.mathworks.com/matlabcentral/answers/101936-can-matlab-builder-for-net-create-a-strongly-named-net-assembly

    从 MATLAB Builder for .NET 2.1 (R2006b) 开始,可以创建强命名的 .NET 程序集,尽管 Builder 默认不创建它们。但是,MWArray.dll 具有强名称,可以在全局程序集缓存 (GAC) 中注册。

    为了使用 MATLAB Builder for .NET 创建强命名程序集,您需要提供签名文件。此文件可以使用 .NET SDK 生成。您可以使用 DEPLOYTOOL 接口对 .NET 程序集进行签名,如下所示:

    1) 打开 DEPLOYTOOL 并创建一个 MATLAB Builder for .NET 项目。

    2) 将适当的文件添加到项目中。

    3) 取消停靠 DEPLOYTOOL GUI。

    4) 进入“Project->Settings”打开项目设置面板。

    5) 确保您选择了正确的 .NET Framework 版本。

    6) 在“程序集类型”下,选择“共享”

    7) 对于“加密密钥文件”,浏览由 .NET SDK 生成的密钥文件。

    8) 构建项目。

    .NET 程序集现在是强命名的,可以在 GAC 中注册。

    【讨论】:

    • 我不想强命名我的 Matlab 可执行文件。我希望它拥有对安装在 GAC 中的现有强名称程序集的强名称引用。
    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2015-11-06
    • 2023-03-18
    • 2015-10-01
    • 1970-01-01
    • 2015-09-21
    • 2015-05-27
    相关资源
    最近更新 更多