2012-06-27 2 views
0

Я хотел бы сохранить проект .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> 

Но это не похоже на работу, я делаю что-то не так?

+0

.NET метаданные не имеет зависимости от разрядности. Что происходит с тем, что эта DLL? Или это просто вопрос копирования правой DLL в папку сборки? –

+0

Привет, я написал о расширенном программном обеспечении с библиотеками программного обеспечения. Некоторые из библиотек не могут быть .Net, во всяком случае, я действительно хочу использовать правильные зависимости, чтобы соответствовать дизайну расширения, который мы используем. –

+1

Пожалуйста, объясните, почему вы -1? –

ответ

0

Почему не просто:

<Reference Include="ExternalReference" Condition=" '$(Platform)' == 'Win32'> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>c:\win32_repository\ExternalReference.dll</HintPath> 
</Reference> 
<Reference Include="ExternalReference" Condition=" '$(Platform)' == 'x64'> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>c:\x64_repository\ExternalReference.dll</HintPath> 
</Reference> 
+0

Он не работает ни ... –

+0

Не работает как? Не привел в правильное собрание или вообще не работал? –

+0

вообще не работает, он не может найти сборку –