程序集引用相同的元数据,但只有一个是链接引用;考虑删除其中一项参考文献

Jac*_*son 5 c# visual-studio visual-studio-2015

我目前正在逐字处理错误:

Assemblies 'C:\Users\Jake\Desktop\AudioFileSorter\AudioFileSorter\obj\Debug\Interop.QTOControlLib.dll' and 'C:\Users\Jake\Desktop\AudioFileSorter\AudioFileSorter\libs\Interop.QTOControlLib.dll' refer to the same metadata but only one is a linked reference (specified using /link option); consider removing one of the references.

我的参考资料包括几个文件:

AxInterop.QTOControlLib.dll
Interop.QTOControlLib.dll
Interop.QTOLibrary.dll
Interop.Shell32.dll
taglib-sharp.dll
Run Code Online (Sandbox Code Playgroud)

这些文件都是从libs我的项目的基本位置中调用的文件夹中找到和引用的:AudioFileSorter\AudioFileSorter\libs\

COM 参考中包含了一个附加的控件参考,作为 Apple QuickTime Control 2.0。除此引用外,所有其他引用都是通过右键单击解决方案资源管理器中的“引用”并单击“添加引用”,然后浏览 libs 文件夹以提取 dll 文件来添加的。

显然,我不知道我在做什么,也不知道如何解决它。该项目昨天工作正常,在尝试将项目构建为发布版本后,一切都变得一团糟,现在我遇到了这个错误。我尝试删除重复的引用之一,但当应用程序在此代码行中调用它时,我最终会丢失该引用:

private void SortM4PFiles(string[] files)
{
    WriteLine("Begin compiling .m4p files...");
    foreach (string file in files)
    {
         axQTControl1.URL = file;

         // Create new movie object
         QTOLibrary.QTMovie mov = new QTOLibrary.QTMovie();
         mov = axQTControl1.Movie;

         string title = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationFullName];
         string artist = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationArtist];
         string album = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationAlbum];
         songs.Add(new Song(title, album, artist, file));
         songs[songs.Count - 1].setType(".m4p");
            WriteLine("Evaluated " + title);
     }

     // Make sure the previous .m4p is not in use
     // This will prevent an IOException when the file is in use and cannot be moved
     axQTControl1.URL = "";
}
Run Code Online (Sandbox Code Playgroud)

任何帮助或解释将不胜感激。谢谢。

这是使用 QuickTime 控件以及读取 m4p 和 m4a 元数据的教程。

Sun*_*eep 2

我试图将一个项目从packages.config 转换为PackageReference...&我遇到了这个问题。经过研究,我意识到,为同一个 dll 添加了两个引用。

如何?一份来自 nuget,一份来自本地 COM dll。我删除了一个参考来解决这个问题。 在此输入图像描述