Visual Studio 2013에는 MonoGame.Binaries NuGet 패키지와 OpenTK.GLControl 패키지에 의존하는 프로젝트가 있습니다. OpenTK.GLControl 패키지 자체는 OpenTK 패키지에 의존합니다.NuGet 패키지에는 다른 패키지의 어셈블리와 같은 이름의 어셈블리가 포함되어 있습니다.
MonoGame.Binaries에는 OpenTK 패키지 대신 OpenTK.dll 복사본이 포함되어 있습니다. 결과적으로 OpenTK.dll은 OpenTK 패키지의 OpenTK.dll을 빌드시 출력 폴더에 덮어 씁니다. OpenTK.GLControl은 MonoGame.Binaries가 제공하는 어셈블리의 버전이 아닌 패키지가 제공하는 OpenTK의 다른 버전을 필요로하기 때문에이 응용 프로그램이 손상됩니다.
두 가지 종속성을 모두 사용하여 좋은 결과를 얻고 적어도 필요한 OpenTK.dll 사본을 사용하십시오. 여기
은 참조를 포함하는 .csproj의 부분입니다 :<ItemGroup>
<Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<HintPath>..\packages\OpenTK.1.1.1589.5942\lib\NET40\OpenTK.dll</HintPath>
</Reference>
<Reference Include="OpenTK.GLControl, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\OpenTK.GLControl.1.1.1589.5942\lib\NET40\OpenTK.GLControl.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\MonoGame.Binaries.3.2.0\build\net40\MonoGame.Binaries.targets" Condition="Exists('..\packages\MonoGame.Binaries.3.2.0\build\net40\MonoGame.Binaries.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MonoGame.Binaries.3.2.0\build\net40\MonoGame.Binaries.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MonoGame.Binaries.3.2.0\build\net40\MonoGame.Binaries.targets'))" />
</Target>
가장 최근에 설치 한 것이 dll을 덮어 쓸 것이라고 가정합니다. 두 dll을 모두 GAC에 설치할 때까지. – abatishchev
제거를 시도한 다음 MonoGame.Binaries를 다시 설치하고 OpenTK.GLControl을 먼저 설치해야합니다. MonoGame.Binaries의 OpenTK.dll이 빌드에서 "이기기"를 계속합니다. – Mars
특히 csproj 내부 자료, 참고 자료를 게시하십시오. – abatishchev