Visual studio 2012 在此系统上找不到自定义工具AGDataSetGenerator

Visual studio 2012 在此系统上找不到自定义工具AGDataSetGenerator,visual-studio-2012,visual-studio-2013,ado.net,registry,customtool,Visual Studio 2012,Visual Studio 2013,Ado.net,Registry,Customtool,我从一个客户端继承了一个遗留的.NET3.5VB应用程序来支持它,他们想做一些小的数据更改。在开始之前,我想重要的是要注意,我运行的是64位Windows 7和VS 2013 Ultimate R2 在对项目进行第一次更改时,我注意到他们的数据集使用了一个定制工具AGDataSetGenerator(Shawn Wildermuth于2004年编写)。我做了很多关于如何注册自定义工具的探索。我转到并获得了该工具的源代码,在项目中有几个实用程序文件,您需要运行这些文件才能注册该工具。记住这是200

我从一个客户端继承了一个遗留的.NET3.5VB应用程序来支持它,他们想做一些小的数据更改。在开始之前,我想重要的是要注意,我运行的是64位Windows 7和VS 2013 Ultimate R2

在对项目进行第一次更改时,我注意到他们的数据集使用了一个定制工具AGDataSetGenerator(Shawn Wildermuth于2004年编写)。我做了很多关于如何注册自定义工具的探索。我转到并获得了该工具的源代码,在项目中有几个实用程序文件,您需要运行这些文件才能注册该工具。记住这是2004年制作的,所以当时的情况有点不同

我修改了Reg.cmd文件以指向v2.0.50727,因为我的项目运行的是.Net 3.5,.Net 3.0和3.5都只是.Net 2.0的小更新,而不是全新的.Net版本。我还注意到有一个Framework64文件夹和一个Framework64文件夹,其中包含C:\Windows\Microsoft.Net文件夹,因此我将这两个位置都添加到了.cmd文件中,希望覆盖我的所有基础。代码如下

Reg.cmd-原件

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\regasm /codebase /verbose F:\AGDataSetGenerator.dll`
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Generators\{164B10B9-B200-11D0-8C61-00A0C91E29D5}\AGDataSetGenerator]
@="ADOGuy DataSet Generator"
"CLSID"="{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}"
"GeneratesDesignTimeSource"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Generators\{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}\AGDataSetGenerator]
@="ADOGuy DataSet Generator"
"CLSID"="{3C13044D-394D-45cd-89FF-51C885BFBCD9}"
"GeneratesDesignTimeSource"=dword:00000001
Reg.cmd-我的修改版本

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm /codebase /verbose F:\AGDataSetGenerator.dll
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\regasm /codebase /verbose F:\AGDataSetGenerator.dll
然后就转到了.reg文件

打开文件时,我的第一个想法是,酷,我可以将版本从7.1切换到12.0,然后我们就可以开始了。事实并非如此。经过一段时间的谷歌搜索,我发现第一行为VB.Net注册了该工具,第二行为C#注册了该工具,所以对我来说,我只需要第一行,现在也可以注册到一个新位置
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\
,用于64位特定的寄存器。因此,为了再次覆盖我的基础,我尝试包括32位和64位位置。我甚至为32位和64位都加入了一个更为全局的寄存器,希望它能将VisualStudio指向generator条目,不幸的是,我在这里有点不知所措,所以我几乎是在抓救命稻草

BSDataSetGenerators.reg-原创

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\regasm /codebase /verbose F:\AGDataSetGenerator.dll`
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Generators\{164B10B9-B200-11D0-8C61-00A0C91E29D5}\AGDataSetGenerator]
@="ADOGuy DataSet Generator"
"CLSID"="{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}"
"GeneratesDesignTimeSource"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\Generators\{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}\AGDataSetGenerator]
@="ADOGuy DataSet Generator"
"CLSID"="{3C13044D-394D-45cd-89FF-51C885BFBCD9}"
"GeneratesDesignTimeSource"=dword:00000001
BSDataSetGenerators.reg-我的修改版

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\12.0\CLSID\{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}]
@="AGDataSetGenerator"
"InprocServer32"="C:\\WINDOWS\\system32\\mscoree.dll"
"Class"="BottomLine.Generators.VBNETAGDataSetGenerator"
"Assembly"="AGDataSetGenerator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=35e4ca7ea38d2508"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\12.0\CLSID\{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}]
@="AGDataSetGenerator"
"InprocServer32"="C:\\WINDOWS\\system32\\mscoree.dll"
"Class"="BottomLine.Generators.VBNETAGDataSetGenerator"
"Assembly"="AGDataSetGenerator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=35e4ca7ea38d2508"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\12.0\Generators\{164B10B9-B200-11D0-8C61-00A0C91E29D5}\AGDataSetGenerator]
@="AGDataSetGenerator"
"CLSID"="{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}"
"GeneratesDesignTimeSource"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\Generators\{164B10B9-B200-11D0-8C61-00A0C91E29D5}\AGDataSetGenerator]
@="AGDataSetGenerator"
"CLSID"="{87BF1B1C-E1DF-4f24-A07E-2BD9B8CAD316}"
"GeneratesDesignTimeSource"=dword:00000001
不管我做了什么。当我右键单击数据集并尝试运行自定义工具时。砰!我得到以下信息:


如果有人能在类似于我自己的设置下工作,我很想知道你是如何做到的。

根据VS 7.1的旧.reg引用,这意味着它是在VS 2003中构建的。我知道VS插件编码在VS2010和更高版本中发生了很大变化。所以,这个插件可能只能在VS2003中使用。。。可能一直到VS 2008。但是,它可能需要重新编写,以便以后在任何情况下都能正常工作


希望你有MSDN或者知道有MSDN的人。我会启动一个虚拟机,安装VS 2003(或者你可以尝试安装VS 2008),然后使用原始的.reg/.cmd安装这个插件。

我是那种在技术方面很难接受否定的人。不幸的是,这里的答案只是“不”。定制工具已经非常过时,要在VS2013中使用它是不可行的(我仍然不能说不可能)


我写这个答案是因为我有一个解决方法,我建议任何处于相同情况的人直接使用,而不是试图让旧工具工作。作为一种解决方法,我在.NET3.5中创建了一个新的数据项目,并使用EntityFramework引入了需要更新的模型。我从数据库生成模型,然后转到后面的.aspx代码,替换对过时生成数据集的引用。这需要一些重构,但使用EF而不是那些古老的生成数据集将代码减少了约40%。在我看来,这是双赢。希望这对将来的其他人有所帮助。

Thx,我可以试试2008年。我运行了一个针对vs 2010的.reg/.cmd更新版本,并对其进行了测试,Huzzaahh(自定义工具)实际运行,但不幸的是,它似乎出错了。现在最困难的部分是确定这是由于VS版本造成的,还是因为项目中出现了一些问题。