- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用的是演练:第 1 部分 - 创建基本项目系统,完全按照网站 http://msdn.microsoft.com/en-us/library/cc512961.aspx 上的说明使用以及与从 http://mpfproj11.codeplex.com/ 下载的完全相同的项目托管包框架 .我已经在 Visual Studio 2013 中的多台开发机器上测试了演练。我还在 Visual Studio 2010 和 2012 中使用各自的 SDK 对此进行了测试。在每个测试中都会出现相同的问题。
问题:我收到异常 - mscorlib.dll 中发生类型为“System.FormatException”的异常,但未在用户代码中处理附加信息:Guid 应包含 32 位数字和 4 个破折号 (xxxxxxxx-xxxx-xxxx- xxxx-xxxxxxxxxxxx) 在 ProjectNode 类方法中:
private void SetProjectGuidFromProjectFile()
{
string projectGuid = this.GetProjectProperty(ProjectFileConstants.ProjectGuid);
if (String.IsNullOrEmpty(projectGuid))
{
this.projectIdGuid = Guid.NewGuid();
}
else
{
Guid guid = new Guid(projectGuid);
if (guid != this.projectIdGuid)
{
this.projectIdGuid = guid;
}
}
}
在线Guid guid = new Guid(projectGuid);
projectGuid 正在返回来自 <ProjectGuid>$guid1$</ProjectGuid>
的字符串“$guid1$”在 SimpleProject.myproj 中。
ProjectNode 类的 Load 方法中的断点表明
this.projectIdGuid = Guid.NewGuid();
返回一个新的 guid,例如 {6d4b8668-51ca-40eb-b013-9e7f96b82b68}。
在 ProjectNode 类的 Reload 方法中,方法 this.SetProjectGuidFromProjectFile()
被解雇,然后如上所示抛出异常。如果我取出<ProjectGuid>$guid1$</ProjectGuid>
在 SimpleProject.myproj 中,我无一异常(exception)地访问了该应用程序,但是您将没有与该应用程序相关联的 guid,如果尝试访问新创建的应用程序的属性页面,将会收到错误消息。 .myproj 可能没有正确注册?我花了一周时间通过各种博客和论坛研究这个主题。
最佳答案
问题来自 MPF(这是一段严重糟糕的代码 - 不幸的是,它是唯一可用的完整示例)实现自定义模板参数替换过程(此处描述的特定于 Visual Studio 的过程:http://msdn.microsoft.com/en-us/library/eehb4faa.aspx ) 仅支持替换所有项目(子)项,但不支持替换项目项本身。因此,您不能在 xxxx.myproj 文件中使用 $guid1$ 或任何其他 $thingy$。
如您所见,最简单的方法是删除此 $guid1$ 参数,并将其留空,因为 MPF 确实支持留空:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<ProjectGuid></ProjectGuid>
...
</PropertyGroup>
...
</Project>
现在,与您的想法相反 :) 这很好用。这会设置 ProjectIDGuid ProjectNode 的属性。
您所追求的属性页完全不同。为简化起见,Visual Studio 将在您的层次结构中查询 __VSHPROPID2.VSHPROPID_PropertyPagesCLSIDList 属性。默认情况下,MPF 是这样实现的:
/// <summary>
/// List of Guids of the config independent property pages. It is called by the GetProperty for VSHPROPID_PropertyPagesCLSIDList property.
/// </summary>
/// <returns></returns>
protected virtual Guid[] GetConfigurationIndependentPropertyPages()
{
return new Guid[] { Guid.Empty };
}
Guid.Empty 是一个糟糕的选择(他们可以只发送一个空数组),因为它会引发以下错误,这很难用我们不知道它来自哪里的标准空 guid 来诊断:
因此,您需要做的是覆盖 GetConfigurationIndependentPropertyPages 并为其提供另一个 Guid,该 Guid 对应于派生自 SettingsPage 的类,等等。但那是另一回事了。
关于c# - 在 VS 可扩展性演练中,Guid 应包含 32 位数字和 4 个破折号 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23959642/
我正在尝试使用 Javascript Regex 验证以下格式基本上破折号之前的第一组数字只能是 3 个数字字符。而破折号后面的字符只能是两个或三个数字字符。不允许使用其他字符或空格。 我看过几篇关于
我试图用 gsub 替换我认为是标准的破折号。我正在测试的代码是: gsub("-", "ABC", "reported – estimate") 但是,这没有任何作用。我将破折号复制并粘贴到 htt
我有一个带有可删除行和列的破折号 DataTable 对象。我想根据可见行更新图形。我不确定如何创建回调以及要传递哪些参数。在浏览器中删除行时,存储在表对象中的数据实际上可能不会更改。 from da
我正在尝试为超过一周前的日期着色。但当我这样做时,它会为所有日期着色。 首先我在破折号代码之前尝试过它,它工作得很好 df = pd.DataFrame(list(collection_jobs.fi
我正在尝试匹配 python 中的以下行,但是该行不起作用。 示例文本为: usr/local/java/latest/bin/java-Djava.util.logging.config.file=
我目前正在使用以下 JavaScript 代码: concatedSubstring.replace(/\//g, '-').replace(/[A-Za-z]/g, function(c){
我在 postgreSQL 中使用 regex_replace 并试图去除字符串中不是字母或数字的任何字符。但是,使用此正则表达式: select * from regexp_replace('bli
我正在尝试选择类名中有破折号的对象 - 例如 $("div.nav-next"); 它不起作用 - 似乎破折号是问题所在 - 有什么想法吗?谢谢 最佳答案 试试这个。去掉“div”部分。 $('.na
如何将连字符打印到这样的输出中,例如 344-34-4333。如果这个 ID 是从一个没有连字符的文件中读取的,我怎样才能让它打印 xxx-xx-xxxx 3 to 2 to 4 ? 最佳答案 std
数字小部件可以在同一个仪表板上多次使用吗? 例如我想显示每个团队成员的当前分数,每个团队成员一个带有向上/向下箭头的小部件,将当前分数与最后一个分数进行比较,如果分数上升,则小部件背景为绿色,如果分数
如何在 Linux 中使用命令行将目录名中的空格替换为 -(破折号)? 注意:有数百个目录,每个目录都有子目录。 我尝试了以下命令,但它返回一条消息'call: rename from to file
当我使用 android 虚线时,它在小屏幕上工作正常,但在 Samsung S3 设备和更高版本中不工作。 截图 和 drawable/dashline.xml XML
我正在使用 GNU bash 运行 Windows,版本 4.3.46(2)-release (x86_64-pc-msys) 可重现的例子 我有一个很大的制表符分隔的文本文件,其中有很多行和列。这只
因此,我正在构建一个读取传感器数据并使用 plotly 绘制获取的数据的项目。使用 interval = 1000 效果很好,但 interval = 500 会导致图形变得歇斯底里。 这是我的图表变
我有以下正则表达式,但我希望文本框允许使用破折号 ^[0-9a-zA-Z \/_?:.,\s]+$ 有人知道我该怎么做吗? 最佳答案 破折号必须是字符类中的第一个/最后一个字符,才能按字面使用: ^[
我经常在 PHP MVC 应用程序中看到 Apache RewriteRule,如下所示: RewriteRule ^.*$ - [NC,L] Apache docs for the RewriteR
我在 zsh 脚本中遇到基本名称问题。想象一下 $directory 包含一个带有前导破折号的文件名,在我的例子中它是“-Fast-”。然后脚本执行 folder=$(basename
我需要制作一条在变量后面有破折号的路线。我想要的很容易用代码解释(这是我尝试过的,但它不起作用) Route::any('tournament/{sportName}/{regionName}/{to
我在 zsh 脚本中遇到基本名称问题。想象一下 $directory 包含一个带有前导破折号的文件名,在我的例子中它是“-Fast-”。然后脚本执行 folder=$(basename
简单的说: echo "xxxxx Tyyy zzzzz" | egrep "\byyy\b" (不匹配哪个是正确的) echo "xxxxx T-yyy zzzzz" | egrep "\byyy\
我是一名优秀的程序员,十分优秀!