Visual Studio 2017扩展开发

3

你好,我想升级我的扩展程序到Visual Studio 2017,但是我遇到了Microsoft.VisualStudio.Shell.RegistrationAttribute错误,虽然我已经添加了这个引用。我在编译时遇到了这个错误。是否还需要添加其他引用?有什么建议吗?

D:\Visual Studio 2017\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.Immutable.10.0.dll ,version :10.0.0.0

我的错误是

Severity    Code    Description Project File    Line    Suppression State
Error       CreatePkgDef : error : ArgumentException: No Visual Studio registration attribute found in this assembly.           
Severity    Code    Description Project File    Line    Suppression State
Error       The assembly should contain an instance of the attribute 'Microsoft.VisualStudio.Shell.RegistrationAttribute' defined in assembly 'Microsoft.VisualStudio.Shell.Immutable.10.0' version '10.0.0.0'  
Severity    Code    Description Project File    Line    Suppression State
Error       at Microsoft.VisualStudio.Tools.CreatePkgDef.ProcessAssembly(String fileName, Hive hive, PkgDefContext context, Boolean register, RegistrationMode mode) in f:\dd\src\vssdk\VSIntegration\Tools\src\CreatePkgDef\CreatePkgDef.cs:line 303
2个回答

7

在csproj文件中添加GeneratePkgDefFile为false,如下所示:

<GeneratePkgDefFile>false</GeneratePkgDefFile>

我正在重新组织我的Visual Studio扩展。曾经作为包的dll现在只是一个类库,由新的包使用。将包“降级”为简单的类库后,它仍然运行CreatePkgDef。将此选项添加到项目文件中对我有所帮助。 - Phil Jollans
在哪个.csproj文件中? - user0474975
1
你可以将它添加到 PropertyGroup 标签中。 - Saurav Babu

1
最终我找到了解决方案,我删除了所有 Microsoft.VisualStudio.**** 的引用,然后在 Visual Studio 2017 中为我的项目添加了一个新的 vsix。这时,我从 nuget 下载了所有的包,现在我的项目可以编译了。

感谢您在此分享您的解决方案,您可以将其标记为答案,以帮助其他社区成员。祝您有美好的一天 :) - Jack Zhai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接