2016-01-05 1 views
3

J'ai un problème après l'importation de fichiers de ressources d'un projet à un autre.Importation de fichiers de ressources (resx)

Je travaille avec Visual Studio Ultimate 2013, C#, Visual Online.

J'ai des fichiers de ressources dans mes projets. Lorsque je crée un nouveau projet et que j'importe des fichiers et des ressources dans un nouveau projet, MY_RESOURCE.Designer.cs n'est pas dans sa propre section MY_RESOURCE.resx - il est à côté.

  • Normalement, pour des fichiers de ressources doit être comme ceci:

    Right order


  • Mais, dans le nouveau projet, il est comme ça - après l'importation:

    Wrong order

En outre, dans le fichier du projet (.csproj) j'ai trouvé que la structure de ces fichiers sont différents.

  • Normalement:

    <Compile Include="Resources\Main\Main.en-US.Designer.cs"> 
        <AutoGen>True</AutoGen> 
        <DesignTime>True</DesignTime> 
        <DependentUpon>Main.en-US.resx</DependentUpon> 
    </Compile> 
    ... 
    <EmbeddedResource Include="Resources\Main\Main.en-US.resx"> 
        <Generator>PublicResXFileCodeGenerator</Generator> 
        <LastGenOutput>Main.en-US.Designer.cs</LastGenOutput> 
    </EmbeddedResource> 
    

  • Après l'importation:

    <Compile Include="Resources\Main\Main.en-US.Designer.cs" /> 
    ... 
    <EmbeddedResource Include="Resources\Main\Main.en-US.resx" /> 
    

J'ai trouvé quelques solutions comme ce problème, pour changer la propriété "Access Modifier" de Recourse de "No code generation" à "Public", mais après cela, le fichier resx crée un nouveau child - MY_RESOURCE1.Designer.cs (pas mon MY_RESOURCE.Designer.cs), donc ce n'est pas une solution pour mon problème. Donc, une fois importés, je dois créer un nouveau fichier Ressource et copier et coller les mots des fichiers de ressources de l'ancien projet dans un nouveau.

Quelqu'un peut-il me conseiller la façon de lier un fichier Designer.cs au fichier resx instable de copier-coller ..?

Répondre

4

Le code C# ("Main.en-US.Designer.cs") est généré automatiquement par VS, vous devez vérifier que Visual Studio gère correctement votre fichier resx.Pour ce faire, vérifiez la propriété outil pour votre fichier resx:

  1. Sélectionnez votre fichier resx
  2. Ouvrez l'onglet Propriétés
  3. Vérifiez la propriété « Custom Tool », assurez-vous que la valeur de « ResXFileCodeGenerator » est présent .

Cela devrait résoudre votre problème.

+0

Mais c'est la même chose, pour ouvrir le fichier resx et changer la propriété "Access Modifier" de "No code generation" à "Internal". De cette façon, crée un nouveau Designer.cs dans resx nommé MY_RESOURCE1.Designer.cs (pas MY_RESOURCE.Designer.cs), et l'ancien MY_RESOURCE.Designer.cs est à côté de MY_RESOURCE.resx à nouveau .. – GuRAm

+0

Oui, parce que vous avez déjà la MY_RESOURCE .Designer.resx dans votre projet. Je ne peux pas comprendre ce que vous essayez de faire, le fichier C# lié à resx est généralement le code autogénéré pour accéder à la ressource à partir de votre code! – LucaMus

+0

Oui, il est bon d'ajouter un nouveau Designer.cs. Maintenant, j'ai supprimé l'ancien Designer.cs et modifié la propriété "Access Modifier" de "Aucune génération de code" à "Public". Nouveau ajouté dans resx (et le nom est juste: MY_RESOURCE.Designer.cs). Je pense que cela fonctionne .. Mais, est-ce juste? Est-ce que tout est dans son ordre dans le projet? Donc, ceci est ma solution et merci beaucoup. – GuRAm

1

J'ai eu le même problème avant. J'ai finalement fait la même chose, copier-coller. Mais avez-vous essayé de changer le fichier de projet. Votre nouveau projet devrait avoir ce noeud noeud intérieur de fichier Concepteur:

<DependentUpon>Main.en-US.resx</DependentUpon> 

je dirais, d'abord importer le fichier, puis modifiez votre fichier de projet et ajoutez ce nœud ci-dessus, dans votre noeud fichier de concepteur-à-dire,

<Compile Include="Resources\Main\Main.en-US.Designer.cs"> 
+0

J'ai cette balise ( Main.en-US.resx) dans le fichier MY_PROJECT.csproj, dans l'ancien projet .. J'ai changé les balises de "MY_RESOURCE.resx" et "MY_RESOURCE.Designer .cs "et après avoir ouvert Visual Studio et projet, tout était dans son ordre (Designer.cs était en resx). Mais, en tant que votre conseil - je dois ajouter cette étiquette de bloc-notes ou d'un autre éditeur, oui? Je pensais qu'il y aurait une autre façon de le résoudre à partir de Visual Studio ... Et, maintenant, comment ouvrir le code Designer du projet à partir de Visual Studio en tant qu'éditeur de texte (comme je l'ai ouvert et copié du bloc-notes)? Merci. – GuRAm