c# - 如何摆脱winform的插件安全性
问题描述
嗨,我创建了多个外部命令并将其停靠到它自己的 Revit 选项卡中。但是,当我将 winform 添加到其中一个命令时,它现在要求我在 Revit 启动时提供另一个安全插件弹出窗口。正如您在 GiF 中看到的那样。有没有办法摆脱它?
这是我的外部命令接口代码:
` [Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)] 公共类 DeleteUnusedFilter : IExternalCommand {
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
var Form = new DeleteFilter(commandData);
try
{
var fltr = new FilterData(doc).GetUnusedFilter();
if (fltr.Count == 0)
{
MessageInfo.Display("No unused View Filters in Document");
Form.Close();
return Result.Cancelled;
}
Form.ShowDialog();
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
message = ex.Message;
return Autodesk.Revit.UI.Result.Failed;
}
}
}`
这是winform代码:
public partial class DeleteFilter : System.Windows.Forms.Form
{
Document doc;
List<Element> FiltersToDelete;
public DeleteFilter(ExternalCommandData commandData)
{
InitializeComponent();
doc = commandData.Application.ActiveUIDocument.Document;
}
private void DeleteFilter_Load(object sender, EventArgs e)
{
callonload();
}
}
这是注册插件的 UiApplication:
//ribbon for delete unused filter
string path3 = Assembly.GetExecutingAssembly().Location;
var button3 = new PushButtonData("Button2", "Delete\n Unused Filter", path2, "RevitCode.DeleteUnusedFilter");
var panel3 = application.CreateRibbonPanel("Angelo Tools", "Delete");
Uri imagePath3 = new Uri(@"C:\ProgramData\Autodesk\Revit\Addins\2019\icon\DeleteFtr.png");
BitmapImage image3 = new BitmapImage(imagePath3);
button3.ToolTip = "Delete Unused View Filters";
PushButton Push_button3 = panel3.AddItem(button3) as PushButton;
Push_button3.LargeImage = image3;
return Result.Succeeded;
提前致谢!
解决方案
正如我们已经在添加 winform 后弹出的另一个安全插件窗口的Revit API 论坛主题中讨论的那样:
这是正常的,也是意料之中的。
每个单独的外部命令和外部应用程序都被单独检查。
因此,使用新的 Windows 窗体添加新的外部命令将产生新的安全检查。
您可以通过单击“始终加载”或签署加载项来摆脱它们。
有关更多详细信息,请参阅有关对您的应用进行数字签名的 Revit API 在线帮助文档。
您还可以在以下线程中查看之前对该主题的讨论:
推荐阅读
- c - 无法使用其指针访问信号量(我认为我使用 & 错误)
- c++ - 使用用户定义的操作隐式转换为类型
- string - 为什么 utf-8 编码字节 \xbd 在 for range 循环中被格式化为 unicode 代码点 fffd?
- android - 关闭应用程序时如何隐藏推送通知的标题?
- python - 使用 reticulate 用 Python 代码编织我的 .Rmd 文件时出错
- powershell - Powershell检查CSV文件中的变量
- angular - 如何应用样式属性角度自动完成
- python - 有什么方法可以将 dbfs(databricks)路径中的 csv 文件分配给 pyspark 中的变量?
- android - 从底部禁用背景视图
- android - 应用程序崩溃有时在 Fabrics java.lang.RuntimeException 中出现错误:无法恢复活动