2016-04-07 52 views
0

Bir referans ipucu üzerinde Seç/Ne zaman/Diğerleri öğelerini kullanmak mümkün mü? BöyleC# csproj dosyası "Select" öğesi montaj için İpucuPastalar

şey:

<ItemGroup> 
    <Reference Include="SharedLib..."> 
<SpecificVersion>False</SpecificVersion> 
<Choose> 
    <When Condition="Exists('..\..\SharedLib\bin\Debug')"> 
     <HintPath>..\..\SharedLib\bin\Debug\SharedLib.dll</HintPath> 
    </When> 
    <Otherwise> 
     <HintPath>.\SharedLib.dll</HintPath> 
    </Otherwise> 
</Choose> 
    </Reference> 
</ItemGroup> 

Ama böyle ... gerekli öznitelik hataları "ItemGroup"

Diğer girişimler/sürüm vermiştir benzer hataları, boş veya eleman eksik "Dahil" olsun as ... "Seçili" öğe meta veri adı saklıdır ve kullanılamaz.

Bu, bir ItemGroup öğesinin INSIDE öğesini "Seç" öğesini kullanamayacağımı düşünmemi sağlıyor.

Açıklamaları memnuniyetle karşılıyorum. Hataların ekli örneklerine bakınız. Visual Studio csproj Errors when loading project

+0

Proje dosyaları XSLT dosyaları değildir. _Why_ bunu ister misin? – CodeCaster

+0

Basit: Uygulamanın, uygulamanın dağıtıldığı/çalıştığı sunucuya bağlı olarak farklı yerlerde dll'ler aramasını istiyorum. – Doc

+0

HintPath'in bunun üzerinde hiçbir etkisi yoktur - sadece derleme zamanında geçerlidir. Çalışma zamanında [MSDN: Çalışma Zamanı Düzenlemelerini Nasıl Bulur?] 'Dan (https://msdn.microsoft.com/en-us/library/yx7xezcf (v = vs.110) .aspx) alınan kurallar, her zaman geçerli olur. – CodeCaster

cevap

0

Seçimde yalnızca Hint Yolu'nu yerleştirebileceğinizi sanmıyorum. Tüm ItemGroup'ları Ne Zaman ve Aksi takdirde koymalısınız. Bunun gibi:

<Choose> 
    <When Condition="Exists('..\..\SharedLib\bin\Debug')"> 
    <ItemGroup> 
     <Reference Include="SharedLib..."> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>..\..\SharedLib\bin\Debug\SharedLib.dll</HintPath> 
     </Reference> 
    </ItemGroup> 
    </When> 
    <Otherwise> 
    <ItemGroup> 
     <Reference Include="SharedLib..."> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>.\SharedLib.dll</HintPath> 
     </Reference> 
    </ItemGroup> 
    </Otherwise> 
</Choose>