我有一个Matlab生成的.exe,需要在强名称的GAC安装的.NET程序集中引用功能。从这里开始:Mathworks help site我看到引用看起来像这样:function Foo()
NET.addAssembly('MyAssembly');
…
end
但是我无法在他们的文档中找到有关如何使引用变得强大的任何描述...任何人都可以产生强烈的 - 具有相同名称的已命名程序集,并将其安装在GAC中以欺骗实际程序集。这些参考文献注定是不安全吗?
答案 0 :(得分:0)
从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)转到"项目 - >设置"打开项目设置窗格。
5)确保您选择了正确的.NET Framework版本。
6)在"装配类型"下,选择"共享"
7)对于"加密密钥文件",浏览.NET SDK生成的密钥文件。
8)建立项目。
.NET程序集现已强名,可以在GAC中注册。