В настоящее время я работаю над приложением, использующим .Net Framework 4.5, с использованием нового формата проекта в стиле SDK. Я хочу создать пакет nuget для сторонней зависимости, которая состоит из сборки AnyCpu и собственных зависимостей с разными именами для x86 и x64. Я хочу, чтобы в случае AnyCpu-Build были скопированы только все собственные зависимости и только соответствующие библиотеки при компиляции моей программы с x86 / x64.
Я попытался создать nuget со следующей структурой:
- lib
- net452
- Dependency.AnyCpu.Assembly.dll
- runtime
- win7
- native
- Dependency.Native.x86.dll
- Dependency.Native.x64.dll
- win7-x86
- native
- Dependency.Native.x86.dll
- win7-x64
- native
- Dependency.Native.x64.dll
, который работает для случая x86 и x64, но не может ничего скопировать в случае AnyCpu
. Без папки win7
разницы нет. Файл
A .props
со следующим содержимым:
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="'$(Platform)' == 'AnyCPU'">
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win7-x86\native\*">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>False</Visible>
</Content>
<Content Include="$(MSBuildThisFileDirectory)..\..\runtimes\win7-x64\native\*">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>False</Visible>
</Content>
</ItemGroup>
</Project>
копирует все собственные зависимости независимо от того, какую архитектуру я установил.