C#-';资源';无法加载DLL,因为它没有';t exist-如何找到引用以便删除它?
我有一个C#解决方案,它在编译时吐出一个可执行的二进制文件。二进制依赖于一个库,该库是我编写的另一个解决方案的产物,所有相关代码都是我创建的 最近,我以一种相当随意的方式处理了许多项目设置,试图了解CLR如何构建链接。不幸的是(可以预见?)我已经设法打破了二进制文件上的链接,但我不知道如何解决这个问题C#-';资源';无法加载DLL,因为它没有';t exist-如何找到引用以便删除它?,c#,dll,assembly-resolution,C#,Dll,Assembly Resolution,我有一个C#解决方案,它在编译时吐出一个可执行的二进制文件。二进制依赖于一个库,该库是我编写的另一个解决方案的产物,所有相关代码都是我创建的 最近,我以一种相当随意的方式处理了许多项目设置,试图了解CLR如何构建链接。不幸的是(可以预见?)我已经设法打破了二进制文件上的链接,但我不知道如何解决这个问题 当我使用二进制文件时,我会在应用程序崩溃之前得到以下反馈 无法加载程序集 在程序集中添加类型 MY.Library,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空- 无
- 当我使用二进制文件时,我会在应用程序崩溃之前得到以下反馈
- MY.Library.resources DLL的融合日志如下所示。提到的二进制文件不存在,我不知道它试图加载到哪里或为什么
- “资源”DLL是隐式的吗?或者我是否必须引用此DLL?我应该如何在图书馆的SLN中找到参考资料
- 如何删除对不存在的资源DLL的引用
References
文件夹中(您也应该从那里添加外部DLL)。您可以右键单击要删除的DLL,然后单击“删除”我遇到了这样的问题,visual studio 2010无法找到所有类型的资源DLL,如xaml.resources.DLL和presentationcore.resources.DLL。结果证明(最终)这是我将MainWindow.xaml移动到子文件夹的结果。我不知道它是否与windows窗体相同,但对任何正在执行WPF的人来说:不要移动MainWindow.xaml。我生命中又浪费了一天
- “资源”DLL是隐式的吗?或者我一定要提到 这个DLL?我应该如何在图书馆的SLN中找到参考资料李>
- 如何删除对不存在的资源DLL的引用
您看到“library.resource”的原因是,您的代码要求.net通过或事件手动加载程序集 就你而言,我认为是后者。只需找到该事件处理程序并执行以下操作:
static System::Reflection::Assembly^ HandleAssemblyResolveEvent(System::Object^ sender, System::ResolveEventArgs^ args)
{
System::String^ assemblyName = args->Name->Substring(0, args->Name->IndexOf(","));
if(assemblyName->EndsWith(".resources")) return nullptr;
}
代码是用C++\CLI编写的,但很容易翻译成C
static System::Reflection::Assembly^ HandleAssemblyResolveEvent(System::Object^ sender, System::ResolveEventArgs^ args)
{
System::String^ assemblyName = args->Name->Substring(0, args->Name->IndexOf(","));
if(assemblyName->EndsWith(".resources")) return nullptr;
}