Я хотел бы сохранить проект .csproj
и скомпилировать две версии dll, одну для платформы Win32
, а другую для платформы x64
.Компиляция Win32 и x64 csproj с различными ссылками
я ударил проблему, потому что мне нужно использовать различные ссылки для каждой платформы
Например, для ExternalReference.dll
<Reference Include="ExternalReference">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\win32_repository\ExternalReference.dll</HintPath>
</Reference>
и x64
:
<Reference Include="ExternalReference">
<SpecificVersion>False</SpecificVersion>
<HintPath>c:\x64_repository\ExternalReference.dll</HintPath>
</Reference>
Я прочитал о переменной $(ReferencePath)
, но она работает только в файле .csproj.user
, и эти файлы не живут в наших версиях ионного контроля, поэтому это не решение.
У вас есть идеи? Могу ли я задать пользовательскую переменную в .csproj
, как это:
<PropertyGroup Condition=" '$(Platform)' == 'Win32' >
<CustomReferencePath>c:\win32_repository</CustomReferencePath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x64' >
<CustomReferencePath>c:\x64_repository</CustomReferencePath>
</PropertyGroup>
, а затем добавить ссылку, как это:
<Reference Include="ExternalReference">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(CustomReferencePath)\ExternalReference.dll</HintPath>
</Reference>
Но это не похоже на работу, я делаю что-то не так?
.NET метаданные не имеет зависимости от разрядности. Что происходит с тем, что эта DLL? Или это просто вопрос копирования правой DLL в папку сборки? –
Привет, я написал о расширенном программном обеспечении с библиотеками программного обеспечения. Некоторые из библиотек не могут быть .Net, во всяком случае, я действительно хочу использовать правильные зависимости, чтобы соответствовать дизайну расширения, который мы используем. –
Пожалуйста, объясните, почему вы -1? –