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

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

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
{
...
}

Thank you so much!
I spent the better part of a day trying to figure this out. It seems like if an assembly is in the VSIX package, it should certainly be found by Visual Studio, however looking at the Fusion Log, I was perplexed why it never actually seemed to scan anywhere except the standard system locations.
I want to note that the ProvideBindingPath attribute is included in the Microsoft.VisualStudio.Shell namespace in later versions of the VS SDK.

Related

Microsoft.Bcl.AsyncInterfaces error (in CSVHelper method) when running the application installed by Visual Studio Setup project

I have a WPF application that reads a CSV file using CSVHelper which I installed using NuGet. Here's the project, system, etc version info.
Microsoft Windows 7 Professional Version 6.1.7601 Service Pack 1 Build
7601
Microsoft Visual Studio Community 2019 Version 16.4.5
NuGet Package Manager 5.4.0
WPF Project Target Framework: .NET Framework 4.7.2
CSVHelper Version: 15.0.5
CSV reader method is straightforward; read a file and put it in a list. Nothing fancy. I'll link the entire project at the bottom so you can download and try it out if you want.
When I run the executable made in either Release or Debug builds, they work fine. They read the file, put contents in a list, and display on a DataGrid just fine. As a next step, I created a standard Visual Studio Setup project, and created an msi installer, which I used to install the app in my PC.
When I run that executable (which is in my Program Files directory), however, the application throws an exception. Here's the exception message and Stack Trace.
Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)
at ReadCSVTest.MainWindow.ReadPeopleList(String path, List`1& people, String& msg)
at ReadCSVTest.MainWindow..ctor()
Since the error says couldn't load the assembly Microsoft.Bcl.AsyncInterfaces, I added that from NuGet and ran everything again, and I still get the error. What's the problem here? What does it mean that Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context.? And why do I only get this exception when I run the executable installed by the Setup project?
Please download the entire project from HERE.
Just so anyone runs into the same issue in the future; as Jones suggested in the comments, downgrading each of the two libraries to following versions fixed the issue for me.
CsvHelper ==> 12.3.2
And
Microsoft.Bcl.AsyncInterfaces ==> 1.0.0

How to configure PDFNet for .NET application to publish to Citrix server? (AnyCPU)

So I have been trying to config the project to make it work on our server via Citrix.
I used this line of code to set the path:
private static pdftron.PDFNetLoader loader = pdftron.PDFNetLoader.Instance().Path(String.Format(#"{0}\{1}",
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(IndexUIZoom)).Location), #"PDFNet"));
I got this error every time (bin is where the .exe file is):
INFO Program [(null)] - Path: [bin]\PDFNet -
ERROR Program [(null)] - System.IO.FileNotFoundException: Could not load file or assembly 'PDFNet.dll' or one of its dependencies.
The specified module could not be found. File name: 'PDFNet.dll'
Everything works fine on local machine. I got the error above whenever I run from Citrix, or log into the server machine and run from there.
Most likely your server is missing the MS VC++ Runtime dependencies. Developer machines usually have them installed as part of a Visual Studio installation, but servers often do not. You can download MS VC++ installers from MSDN.
To find the exact one you need to download please see section 3.2.1 of the Getting Started Guide for PDFNet .Net below. Note you need to also match the runtime 32 or 64 bitness of your process, for both PDFNet.dll and the MS VC++ runtime.
PDFNet .Net 4.0+ Getting Started Guide
PDFNet .Net 2.0-3.5 Getting Started Guide
https://www.pdftron.com/documentation/windows/guides

Visual Studio 2015 Update 1 - Not able to work with XAML

Installed VS2015 Update 1 and facing a load of issues!
What I have tried till now:
Removed the ComponentModelCache and restarted. Did not help.
Repaired VS 2015 and it did not help (XAML lost outlining)
Uninstalled and reinstalled VS 2015 (XAML is no longer displaying)
Error message(s):
Project could not be opened because the Visual C# 2015 compiler could not be created. Please re-install Visual Studio.
Intellisense could not be initialized due to the following error: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.LanguageServices, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.LanguageServices, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Metadata.ManagedTypeResolverService..ctor(IServiceProvider provider)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Package.XamlLanguagePackage.b__10_3(IServiceContainer c, Type t)
at Microsoft.VisualStudio.Shell.Package.GetService(Type serviceType)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Package.XamlLanguagePackage.GetService(Type serviceType)
at Microsoft.VisualStudio.Shell.Package.System.IServiceProvider.GetService(Type serviceType)
at Microsoft.VisualStudio.DesignTools.DesignerHost.HostServices.ServiceProviderExtensions.GetRequiredService[T](IServiceProvider serviceProvider, Type serviceType)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.XamlFileInformationService.CreateFileInformationContext(IHostSourceItem sourceItem)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.XamlLanguageService.GetFileContextScope(String fileName, IVsTextLines textLines, IXamlFileInformationContext& fileContext)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.XamlLanguageService.EnsureBufferCache(IVsTextLines textLines)
at Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.XamlLanguageService.CreateSource(IVsTextLines textLines)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

SSIS error loading package in VS 2012 with TFS

I am receiving the following error when trying to execute an SSIS package using Visual Studio 2012:
Error 39 Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException: The
package failed to load due to error 0xC0011008 "Error loading from
XML. No further detailed error information can be specified for this
problem because no Events object was passed where detailed error
information can be stored.". This occurs when CPackage::LoadFromXML
fails. ---> System.Runtime.InteropServices.COMException: The package
failed to load due to error 0xC0011008 "Error loading from XML. No
further detailed error information can be specified for this problem
because no Events object was passed where detailed error information
can be stored.". This occurs when CPackage::LoadFromXML fails.
at
Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackagePersist100.LoadPackageFromXML(Object
vSource, Boolean vbSourceIsLocation, IDTSEvents100 pEvents) at
Microsoft.SqlServer.Dts.Runtime.Package.LoadFromXML(String packageXml,
IDTSEvents events) --- End of inner exception stack trace ---
at Microsoft.SqlServer.Dts.Runtime.Package.LoadFromXML(String
packageXml, IDTSEvents events) at
Microsoft.SqlServer.Dts.Runtime.Project.LoadPackage(IProjectStorage
storage, Package package, String streamName, IDTSEvents events) at
Microsoft.SqlServer.Dts.Runtime.PackageItem.Load(IDTSEvents events)
at Microsoft.SqlServer.Dts.Runtime.PackageItem.get_Package() at
Microsoft.DataTransformationServices.Project.DataTransformationsProjectBuilder.IncrementalBuildThroughObj(IOutputWindow
outputWindow) at
Microsoft.DataTransformationServices.Project.DataTransformationsProjectBuilder.BuildIncremental(IOutputWindow
outputWindow)
0 0
The package is stored in TFS and I can open the package/solution without any errors. I just get the error when i try to excecute the package or any step in the package.
I created a new package on my machine (64 bit) and it worked fine. I'm just having trouble running the package when opening from TFS.
thanks
Scott
I resolved a very similar situation by changing the SQL Server sdk version that my solution was pointing.
I had SQL Server Express 2008 installed, and was using VS 2012 with BI Tools 2012. So, my solution was referencing the assembly Microsoft.SqlServer.ManagedDTS.dll version 10. For my case, the correct was the version 12.
I had this problem when trying to open an SSIS package which used a component which I did not have installed. In my case, it was the "Azure Feature Pack".
I had similar errors on a Win64, VS2013, SQL2012 system. The SSIS package did not load correctly.
Identify: I created a local copy of the whole package, and narrowed the problem with reduction to a single sub-package.
Reason: different date format.
Solution: I had to change the Windows date format to UK (source of the package), and since then everything is fine.
You have to copy the reference libraries to the Program Files directly as well.
I saw that in the (x86) path, the files were there, but not in the 64-bit folder of Program Files. I'm using Visual Studio 2010.
1 - C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Connections
2 - C:\Program Files\Microsoft SQL Server\110\DTS\Connections
The referenced DLL was found in location 1, but not in 2.
I closed Visual Studio, copied the DLL over to path 2, and opened VS again. The package just worked like normal.
I resolved a very similar situation by changing the TargetServerVersion in the project general configuration properties. I use Visual Studio 2015. By default SQL Server vNext was selected, whereas I have SQL Server 2012 installed.

compiling DotNetNuke 06.02.05 throws exception in Globals.cs

I just installed a fresh copy with source code of DotNetNuke 06.02.05.
I have compiled using VS 2010 but couldn't complete because of the following exception in globals.cs
Object reference not set to an instance of an object.
Source:
string strMessage = DataProvider.Instance().GetProviderPath();
i didn't change anything in the code, just opened the solution and compile.
Any suggestions.
Remove the web.config renamed release.config to web.config.

Resources