自定义工具"RazorGenerator"失败了.该方法或操作未实现

rob*_*mzd 11 asp.net-mvc asp.net-mvc-3 visual-studio-extensions razorgenerator

我刚刚将Visual Studio扩展RazorGenerator升级到V1.5(上次更新时间为10/14/2012),现在出现以下问题.

如果我选择"运行自定义工具",现在编辑的每个cshtml文件都会删除生成的文件 The custom tool 'RazorGenerator' failed. The method or operation is not implemented.

我以前在我的项目中工作没有问题,但升级似乎打破了它.有谁知道如何解决这个问题?因为它是通过ExtensionManager安装的,所以我现在甚至无法回滚到以前的版本.

最新版本的Nuz中的RazorGenerator.MVC是1.4(2012年4月20日,星期五),所以版本不匹配可能是问题..?

我已经尝试重启VS和我的机器没有成功,我甚至卸载了扩展并重新安装,但也没有用.

Exception calling "RunCustomTool" with "0" argument(s): "The custom tool 'RazorGenerator' failed.  The method or operation is not implemented."
At D:\Source\MySolution\MyProject\packages\RazorGenerator.Mvc.1.4.0.0\tools\RazorGenerator.psm1:32 char:32
+         $_.Object.RunCustomTool <<<< ()
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

Exception calling "GetItem" with "1" argument(s): "The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))"
At D:\Source\MySolution\MyProject\packages\RazorGenerator.Mvc.1.4.0.0\tools\RazorGenerator.psm1:62 char:46
+                     $solutionExplorer.GetItem <<<< ("$SolutionName\$ProjectName$relativePath").UIHierarchyItems.Expanded = $false
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation
Run Code Online (Sandbox Code Playgroud)

除此之外,我还为每个视图获得了以下构建错误(尽管说构建成功):

Custom tool error: Could not load file or assembly 'file:///C:\Users\Rob\AppData\Local\assembly\dl3\VQ93NZJ0.M7K\4HA91P75.CHN\4b53b7b1\09b87db8_d4adcd01\RazorGenerator.Core.v1.dll' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

下载了源代码,在本地构建并将"RazorGenerator.Core.v1.dll"从错误消息复制到目录中,但它仍然无法正常工作.我甚至将所有RazorGenerator*.dll文件复制到该目录中,但仍然没有运气.检查依赖项仅显示系统程序集和存在于同一目录中的"RazorGenerator.Core.dll".

顺便说一句,'RazorGenerator.Core.dll'已经在上面的目录中.

查看Visual Studio扩展文件夹,我有一个RazorGenerator目录,如下所示:

C:\Users\Rob\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\RazorGenerator contributors\Razor Generator\1.5
Run Code Online (Sandbox Code Playgroud)

以下文件和程序集位于此文件夹中:

extension.vsixmanifest
RazorGenerator.Core.dll
RazorGenerator.Core.v1.dll
RazorGenerator.Core.V2.dll
RazorGenerator.dll
RazorGenerator.pdb
RazorGenerator.pkgdef
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感谢.

rob*_*mzd 14

我希望有一个更好的答案,但由于这解决了问题,我想我应该发布它.

基本上@Bobson是对的,在目录中创建文件的副本解决了它.在我的情况下,从RazorGenerator.Core.v1.dll组件复制/粘贴

C:\Users\Rob\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\RazorGenerator contributors\Razor Generator\1.5

C:\Users\Rob\AppData\Local\assembly\dl3\VQ93NZJ0.M7K\4HA91P75.CHN\4b53b7b1\09b87db8_d4adcd01

这给了我该目录中的3个文件:

__AssemblyInfo__.ini
RazorGenerator.Core.dll
RazorGenerator.Core.v1.dll
Run Code Online (Sandbox Code Playgroud)

我没有注意到这首先解决了这个问题,因为它还需要重新启动visual studio.

工作项目还没有被发现罢了,但最终,如果你有那么这个问题上复制文件并重新启动应该修复它.

  • 这是我写的一个快速的Linqpad片段,用于自动执行此任务,因为它似乎一直在发生在我身上 - https://gist.github.com/geoffappleford/6087882 (2认同)

for*_*reh 5

对于在VS2012中被困在这里的任何人来说 - 这里的建议对我来说有一些警告:

  • 我的扩展文件夹是一些自动生成的名称,不像上面那样:

%USERPROFILE%\应用程序数据\本地\微软\ VisualStudio的\ 11.0 \扩展\ qd42h302.z0o

  • 在该文件夹中,我只找到了RazorGenerator.Core.dll和RazorGenerator.dll.我复制了两个(和extension.vsixmanifest和RazorGenerator.pkgdef).然后,我在v1和v2下面有两个文件夹.由于当前版本的RazorGenerator.Mvc在撰写本文时为1.5.5.0,因此我假设v2是下一个版本.

事实并非如此.我还必须将\ v2\RazorGenerator.Core.V2.dll复制到本地程序集目录中:

%USERPROFILE%\应用程序数据\本地\组件\ DL3\VVGKRX56.ODL\P1CK8APX.LRJ\1188e83c\133862b8_6531ce01

  • 现在我有两个.在codeplex帖子中,pranavkmwr提到选择基于您正在使用的Razor的版本.我想那些版本号是指剃刀引擎,而不是RazorGenerator版本.

  • 这是我写的一个快速的Linqpad片段,用于自动执行此任务,因为它似乎一直在发生在我身上 - https://gist.github.com/geoffappleford/6087882 (3认同)