Ok mein Problem ist einfach, aber ich kann es nicht herausgefunden.Nuget - LNK2019 bei der Verwendung eines meiner Projekte, die auf ein Paket nuget
In einer einzigen Lösung habe ich ein Projekt (Application exe), das auf eine andere (lib) verweist. Diese Bibliothek verweist auf ein nugget-Paket, z. B. CxImage.
.targets
<?xml version="1.0" encoding="utf-8"?>
<Project ToolVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>"$(MSBuildThisFileDirectory)include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<!-- patch -->
<AdditionalIncludeDirectories>"$(MSBuildThisFileDirectory)include\cximage";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(Configuration.ToLower().StartsWith('release')) And '$(Platform.ToLower())'=='x64'">
<Lib>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x64";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<Link>
<AdditionalDependencies>CxImage.lib;jpeg.lib;png.lib;tiff.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x64";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(Configuration.ToLower().StartsWith('debug')) And '$(Platform.ToLower())'=='x64'">
<Lib>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x64";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<Link>
<AdditionalDependencies>CxImage_d.lib;jpeg_d.lib;png_d.lib;tiff_d.lib;zlib_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x64";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(Configuration.ToLower().StartsWith('release')) And '$(Platform.ToLower())'=='win32'">
<Lib>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x86";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<Link>
<AdditionalDependencies>CxImage.lib;jpeg.lib;png.lib;tiff.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x86";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="$(Configuration.ToLower().StartsWith('debug')) And '$(Platform.ToLower())'=='win32'">
<Lib>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x86";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
<Link>
<AdditionalDependencies>CxImage_d.lib;jpeg_d.lib;png_d.lib;tiff_d.lib;zlib_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>"$(MSBuildThisFileDirectory)lib\x86";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
Wenn das andere Projekt aufzubauen, die diese lib verweist, kommt es zu einem LNK2019 nicht aufgelöstes externes Symbol "public: __thiscall CxImage :: CxImage (unsigned int)" (?? 0CxImage @@ QAE @ I @ Z) referenziert in Funktion
Bedeutet, dass es lib Datei von CxImage nicht finden kann.
Ich fand einen Weg, um das Problem zu beheben, aber ich denke nicht, dass es richtig ist. In den Eigenschaften der Lib in anderen Anwendungen verwendet, in Librarian> General> Additional Dependencies, fügte ich cxImage lib. Ich dachte, dass die erste Idee hinter nuget-Paket war, diese Art von Sache so zu vermeiden ...
** es ist nicht mit cxImage verwandt, das Problem tritt in jedem anderen Fall auf. Ich erwähnte gerade dieses zum Beispiel
Irgendeine Idee ?? ^^