c# - Reference problems in Visual Studio extension -
i'm new visual studio extensions , tried samples github helpful advices here success. i'm trying create toolwindow processes structure of open solution, technically no problem microsoft.visualstudio.languageservices
namespace. toolwindow per se works, long don't use namespace - in particular following called function initializes solution information in constructor of window:
private void reloadsolutioninformation() { var componentmodel = (icomponentmodel)smartoptionseditorpackage.getglobalservice(typeof(scomponentmodel)); visualstudioworkspace workspace = componentmodel.getservice<visualstudioworkspace>(); solution solution = workspace.currentsolution; this.solutions.clear(); // collection of solutionnode instances // create , add custom tree node solution information var solutionnode = new solutionnode(solution.filepath); this.solutions.add(solutionnode); // recurse through projects etc. populatesolutionwithprojects(solutionnode, solution); }
when run extension debug in experimental instance of visual studio 2017, following exception (original german, translation might not 100% accurate) in constructor, above method invoked:
the file or assembly "microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35" or 1 of dependencies not found. system cannot find file.
stacktrace: @ myassembly.mytoolwindow.reloadsolutioninformation() @ myassembly.mytoolwindow..ctor() @ myassembly.mytoolwindowpane..ctor()
filename: microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35
furthermore, noticed following warning after build:
cs1762: reference created embedded interop assembly 'microsoft.visualstudio.shell.interop.10.0, version=10.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a' because of indirect reference assembly created assembly 'microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35'. consider changing 'embed interop types' property on either assembly.
with build output verbosity set diagnostic, found above warning without further information. examining build output directory, see referenced dlls contained, microsoft.visualstudio.*
dlls missing in vsix, except microsoft.visualstudio.shell.interop.15.3.designtime.dll
. far understand interop assemblies, i'd think supplied visualstudio, don't have embed them, i?
the reference property embed interop types
set false each reference. tried change according advices found, didn't work. i'm targeting .net 4.6.2.
after far many evenings of frustrated trial-and-especially-error, still don't know, how can fix this. includes reinstalling nuget packages, restarting everything, resetting experimental instance , step-by-step removing , re-adding references both local dll , nugetpackage. in former edit posted shortened project file content , had remove now, due input character limit. instead, here output of fusionlog:
=== zustandsinformationen vor bindung === log: displayname = microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35 (fully-specified) log: appbase = file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/ log: ursprünglicher privatepath = null aufruf von assembly : myassembly, version=1.0.0.0, culture=neutral, publickeytoken=null. === log: diese bindung startet im loadfrom-load-kontext. wrn: das systemeigene image wird nicht im loadfrom-kontext durchsucht. das systemeigene image wird nur im standard-load-kontext durchsucht, z. b. assembly.load(). log: die anwendungskonfigurationsdatei wird verwendet: c:\users\me\appdata\local\microsoft\visualstudio\15.0_15d7a44dexp\devenv.exe.config log: die hostkonfigurationsdatei wird verwendet: log: die computerkonfigurationsdatei von c:\windows\microsoft.net\framework\v4.0.30319\config\machine.config wird verwendet. log: verweis nach der richtlinie: microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35 log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/publicassemblies/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/publicassemblies/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/microsoft/templateproviders/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/microsoft/templateproviders/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/debugger/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/debugger/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/diagnosticshub/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/diagnosticshub/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/x86/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/x86/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/publicassemblies/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/publicassemblies/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/microsoft/templateproviders/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/microsoft/templateproviders/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/debugger/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/debugger/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/diagnosticshub/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/commonextensions/platform/diagnosticshub/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/x86/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/program files (x86)/microsoft visual studio/2017/community/common7/ide/privateassemblies/datacollectors/x86/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/users/me/appdata/local/microsoft/visualstudio/15.0_15d7a44dexp/extensions/author/my assembly/1.0/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/users/me/appdata/local/microsoft/visualstudio/15.0_15d7a44dexp/extensions/author/my assembly/1.0/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.dll. log: download von neuem url file:///c:/users/me/appdata/local/microsoft/visualstudio/15.0_15d7a44dexp/extensions/author/my assembly/1.0/microsoft.visualstudio.languageservices.exe. log: download von neuem url file:///c:/users/me/appdata/local/microsoft/visualstudio/15.0_15d7a44dexp/extensions/author/my assembly/1.0/microsoft.visualstudio.languageservices/microsoft.visualstudio.languageservices.exe.
you find minimal solution example in this zip file. here, created new solution new vsix project, added toolwindow via wizard, added vital code, resolved missing references, started debugging , received same old filenotfoundexception
.
does see problem here? in advance.
you must use version of libraries visual studio uses or lower.
for community 2017 can found in
c:\program files (x86)\microsoft visual studio\2017\community\common7\ide\commonextensions\microsoft\managedlanguages\vbcsharp\languageservices
now in visual studio 2017 version 15.2
microsoft.codeanalysis.workspaces.dll, microsoft.visualstudio.languageservices.dll, microsoft.codeanalysis.editorfeatures.text have version 2.2.0.
so install or update them version 2.2.0 in nuget , no need include them vsix
newer version of microsoft.visualstudio.languageservices can include in vsix adding <forceincludeinvsix>true</forceincludeinvsix>
.csproj file:
<reference include="microsoft.visualstudio.languageservices, version=2.3.0.0, culture=neutral, publickeytoken=31bf3856ad364e35, processorarchitecture=msil"> <hintpath>..\packages\microsoft.visualstudio.languageservices.2.3.1\lib\net46\microsoft.visualstudio.languageservices.dll</hintpath> <forceincludeinvsix>true</forceincludeinvsix> </reference>
but we'll other errors.
system.invalidcastexception: 'unable cast object of type 'microsoft.visualstudio.languageservices.roslynvisualstudioworkspace' type 'microsoft.visualstudio.languageservices.visualstudioworkspace
visual studio 2017 version 15.3 use 2.3.2 version. extension uses lower version 2.2.0 , work there. if update components in nuget 2.3.2, extension work in 15.3 , not work in 15.2
so use 2.2.0 version now.
Comments
Post a Comment