繁体   English   中英

$ safeprojectname $在IWizard.RunStarted方法中不安全

[英]$safeprojectname$ isn't safe within the IWizard.RunStarted method

我已经实现了IWizard接口,我想获得$safeprojectname$ 所以,我使用以下代码:

public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams) {
    var safeProjectName = replacementsDictionary["$safeprojectname$"];
}

但在这种情况下, safeProjectName是一个包含规范符号的字符串,如-+等。例如,如果用户将项目名称设置为My-Project-1 $safeprojectname$将是My-Project-1 我期待My_Project_1

我应该手动更换所有不安全的符号吗?

根据这篇文章它应该没有任何操纵,但它没有:

safeitemname - 用户在“添加新项”对话框中提供的名称,其中删除了所有不安全的字符和空格。

PS:

在VS Professional 2015和VS Professional 2017中重现。

例如,用户将项目名称设置为My-Project-1 $ safeprojectname $将是My-Project-1。 我期待My_Project_1。

您可以将' - '替换为'_',如下所示:

 var safeProjectName = replacementsDictionary["$safeprojectname$"];

 replacementsDictionary["$safeprojectname$"] = replacementsDictionary ["$safeprojectname$"].Replace("-", "_");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM