2013-09-26 5 views
7

Staramy się, aby nasze aplikacji C#, aby skompilować i uruchomić z zarównoJak napisać klauzule DependentUpon dla plików C# w podkatalogach?

  • Visual Studio 10 (z kompilatora Microsoft), w systemie Windows, a
  • MonoDevelop z GMC, Linux

jednak sekcje takie jak ten w .csproj plików (dla Visual Studio):

<Compile Include="Foo\Bar.cs" /> 
<EmbeddedResource Include="Foo\Bar.resx"> 
    <DependentUpon>Bar.cs</DependentUpon> 
</EmbeddedResource> 

musi zostać zmieniony w następujący sposób, zanim zaczną działać z MonoDevelop/GMC (jeśli nie, w czasie wykonywania, resources.GetObject() rzuci MissingManifestResourceException):

<Compile Include="Foo\Bar.cs" /> 
<EmbeddedResource Include="Foo\Bar.resx"> 
    <DependentUpon>Foo\Bar.cs</DependentUpon> 
</EmbeddedResource> 

Jak przepisać to na formularzu będą zarówno zaakceptować? (Bez skasowania elementu DependentUpon, oczywiście.)

Odpowiedz

3

Tymczasem zbadałem kilka sposobów radzenia sobie z sytuacją.

Na przykład: it is apparently possible, aby dodać atrybuty Condition o wartości $(VisualStudioVersion) != '' w celu uzależnienia ich od używania programu Visual Studio.

Jednak kaprysu (po przeczytaniu this answer) Próbowałem coś zupełnie innego: Wymieniłem moich zagnieżdżone przestrzenie

namespace Baz 
{ 
    namespace Bar 
    { 
     [...] 
    } 
} 

z notacji przestrzeni nazw:

namespace Baz.Bar 
{ 
    [...] 
} 

i voila, The MissingManifestResourceException już nie istnieje, nawet z oryginalną klauzulą ​​DependentUpon.

Problem rozwiązany, ale nie wiem dlaczego.

Powiązane problemy