Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VSX 2010 package loading- Markup.xaml parsing cannot find assemblies

I have built a Wpf UserControl Library and it contains a large group of assemblies and even references two other class libraries and several merged resourceDictionaries. It builds without error. I built a simple VSX package and referenced the Wpf Library, then tried to run it. As it parsed the page it was able to find only part of the assemblies referenced on my xaml UserControl page. It gives me the error message below in the fusion log for each unbindable assembly. If I remove the "bad" assembly it continues parsing to the next unfindable one. It is able to find one of my referenced classlibraries, but not the other. They are set up essentially the same with different class content.

So, does anyone have any resources or answers for this? My other test projects that even contain WCF services load with no issues and this is a stumper for me.

Thanks, Danny

=== Pre-bind state information === LOG: User = AMRS\dhoneycu LOG: DisplayName = System.Windows.Interactivity, PublicKeyToken=31bf3856ad364e35 (Partial) WRN: Partial binding information was supplied for an assembly: WRN: Assembly Name: System.Windows.Interactivity, PublicKeyToken=31bf3856ad364e35 | Domain ID: 1 WRN: A partial bind occurs when only part of the assembly display name is provided. WRN: This might result in the binder loading an incorrect assembly. WRN: It is recommended to provide a fully specified textual identity for the assembly, WRN: that consists of the simple name, version, culture, and public key token. WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue. LOG: Appbase = file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/ LOG: Initial PrivatePath = NULL

Calling assembly : (Unknown).

LOG: This bind starts in default load context. LOG: Using application configuration file: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.Config LOG: Using host configuration file: LOG: Using machine configuration file from c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/System.Windows.Interactivity/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/System.Windows.Interactivity/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/System.Windows.Interactivity/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/CommonExtensions/Microsoft/TemplateProviders/System.Windows.Interactivity/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/PrivateAssemblies/DataCollectors/System.Windows.Interactivity.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Visual Studio

like image 542
isitdanny Avatar asked Dec 18 '10 16:12

isitdanny


1 Answers

You should put a ProvideBindingPath attribute on your VSPackage class. This will cause the directory where your package assembly resides to be probed for assemblies that otherwise can't be found (because they don't reside in the default VS probing path). To do so, include the following file in your project:

%VSSDKInstallDir%\VisualStudioIntegration\Common\Source\CSharp\RegistrationAttributes\ProvideBindingPathAttribute.cs

Then, add the following attribute to your VSPackage class like the following:

[ProvideBindingPath] public class VsPackage1 : Package { ... }

like image 112
Aaron Marten Avatar answered Nov 15 '22 20:11

Aaron Marten