Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-';资源';无法加载DLL,因为它没有';t exist-如何找到引用以便删除它?_C#_Dll_Assembly Resolution - Fatal编程技术网

C#-';资源';无法加载DLL,因为它没有';t exist-如何找到引用以便删除它?

C#-';资源';无法加载DLL,因为它没有';t exist-如何找到引用以便删除它?,c#,dll,assembly-resolution,C#,Dll,Assembly Resolution,我有一个C#解决方案,它在编译时吐出一个可执行的二进制文件。二进制依赖于一个库,该库是我编写的另一个解决方案的产物,所有相关代码都是我创建的 最近,我以一种相当随意的方式处理了许多项目设置,试图了解CLR如何构建链接。不幸的是(可以预见?)我已经设法打破了二进制文件上的链接,但我不知道如何解决这个问题 当我使用二进制文件时,我会在应用程序崩溃之前得到以下反馈 无法加载程序集 在程序集中添加类型 MY.Library,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空- 无

我有一个C#解决方案,它在编译时吐出一个可执行的二进制文件。二进制依赖于一个库,该库是我编写的另一个解决方案的产物,所有相关代码都是我创建的

最近,我以一种相当随意的方式处理了许多项目设置,试图了解CLR如何构建链接。不幸的是(可以预见?)我已经设法打破了二进制文件上的链接,但我不知道如何解决这个问题

  • 当我使用二进制文件时,我会在应用程序崩溃之前得到以下反馈
无法加载程序集 在程序集中添加类型 MY.Library,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空- 无法加载一个或多个 请求的类型。取回 LoaderExceptions属性了解更多信息 信息

  • MY.Library.resources DLL的融合日志如下所示。提到的二进制文件不存在,我不知道它试图加载到哪里或为什么
>

  • “资源”DLL是隐式的吗?或者我是否必须引用此DLL?我应该如何在图书馆的SLN中找到参考资料
TL;博士

  • 如何删除对不存在的资源DLL的引用

通常,您引用的DLL应该位于C#项目的
References
文件夹中(您也应该从那里添加外部DLL)。您可以右键单击要删除的DLL,然后单击“删除”

我遇到了这样的问题,visual studio 2010无法找到所有类型的资源DLL,如xaml.resources.DLL和presentationcore.resources.DLL。结果证明(最终)这是我将MainWindow.xaml移动到子文件夹的结果。我不知道它是否与windows窗体相同,但对任何正在执行WPF的人来说:不要移动MainWindow.xaml。我生命中又浪费了一天

  • “资源”DLL是隐式的吗?或者我一定要提到 这个DLL?我应该如何在图书馆的SLN中找到参考资料
  • 如何删除对不存在的资源DLL的引用
资源实际上已嵌入到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;
}