web-dev-qa-db-fra.com

erreur dans csproj - élément en double

J'ai une erreur de Visual Studio 2010:

Erreur 1 L'élément "CrossDomainService.svc.cs" a été spécifié plusieurs fois dans le paramètre "Sources". Les éléments en double ne sont pas pris en charge par le paramètre "Sources". WcfServiceDomain

et de msbuild 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets (160,9) : erreur MSB3105: L'élément "CrossDomainService.svc.cs" a été spécifié plus de o dans le paramètre "Sources". Les éléments en double ne sont pas pris en charge par le paramètre "Sources". [C:\inetpub\Wwwroot\axaptaWcfConnection\WcfServiceDomain\WcfSer viceDomain.csproj]

Mon fichier est csproj:

    <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{8D40933A-E036-4CD0-9003-314A692724D5}</ProjectGuid>
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>WcfServiceDomain</RootNamespace>
    <AssemblyName>WcfServiceDomain</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <TargetFrameworkProfile />
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>4.0</OldToolsVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>Prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <PlatformTarget>x86</PlatformTarget>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>Prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System.Web.ApplicationServices" />
    <Reference Include="System.Web.DynamicData" />
    <Reference Include="System.Web.Entity" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.ServiceModel.Web" />
    <Reference Include="System.Web.Services" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="ClientAccessPolicy.xml" />
    <Content Include="CrossDomainService.svc" />
    <Content Include="Service1.svc" />
    <Content Include="Web.config">
      <SubType>Designer</SubType>
    </Content>
    <Content Include="Web.Debug.config">
      <DependentUpon>Web.config</DependentUpon>
    </Content>
    <Content Include="Web.Release.config">
      <DependentUpon>Web.config</DependentUpon>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="CrossDomainService.svc.cs">
      <DependentUpon>CrossDomainService.svc</DependentUpon>
    </Compile>
    <Compile Include="ICrossDomainService.cs" />
    <Compile Include="Service1.svc.cs">
      <DependentUpon>Service1.svc</DependentUpon>
    </Compile>
    <Compile Include="IService1.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>False</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>51421</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>
          </IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
</Project>

Je ne vois aucun doublon:/Une idée de cette erreur? 

51
netmajor

Je rencontrais le même problème dans ma solution avec la même erreur pour l’un des fichiers source,

Je l'ai arrangé comme suit,

  1. Recherchez le nom du fichier pour lequel l'erreur est donnée.

  2. Découvrez dans quel projet le fichier est inclus.

  3. Ouvrez le fichier .csproj pour ce projet particulier (ce fichier se trouve dans le répertoire où la solution est placée).

  4. Recherchez le nom du fichier pour lequel l'erreur est générée dans le fichier .csproj.

  5. Vous trouverez deux entrées de la ligne telles que 

 <Compile Include="duplicate.aspx.cs">
      <SubType>ASPXCodeBehind</SubType>
      <DependentUpon>Duplicate.aspx</DependentUpon>
    </Compile>


 <Compile Include="duplicate.aspx.cs">
      <SubType>ASPXCodeBehind</SubType>
      <DependentUpon>Duplicate.aspx</DependentUpon>
    </Compile>
  1. Supprimez n'importe quelle ligne de l'un d'eux.

  2. Enregistrez les modifications.

  3. Rechargez le projet, votre erreur doit avoir disparu.

92
NetStarter

Pour ceux qui ont rencontré le même problème, rien ne les a aidé et ils ne veulent pas recréer le projet: Essayez de supprimer le fichier YourPojectName.csproj.user. Ça m'a aidé. J'ai modifié le .csproj manuellement avant et la modification introduite (en quelque sorte) probablement une différence entre les deux fichiers.

5
Jindra

Vous pouvez simplement ouvrir la solution dans un éditeur de texte standard et supprimer les doublons à la main

4
Dmitry

Je pense avoir rencontré le même problème il n'y a pas si longtemps ... La solution consistait à supprimer le sous-type du fichier web.config, à savoir:

<Content Include="Web.config">
  <SubType>Designer</SubType>
</Content>

À:

<Content Include="Web.config">
</Content>

Maintenant, ceux-ci ont été ajoutés à nouveau, je ne sais pas pourquoi. La recherche de plus d’informations ne l’a pas encore effacée . Voir: <Sous-type> Designer </ Sous-type> ajouté puis supprimé par Visual Studio lors du chargement/déchargement

2
H.Wolper

Facile! Juste un clic droit dans votre projet et sélectionnez "Décharger le projet"

Faites un nouveau clic droit et edir votre_projet.csproj

Recherchez une étiquette en double pour le fichier mentionné dans le message d'erreur.

Enregistrer et clic droit pour choisir "Reload Project"

 Right click

2
Marcelo Lujan

J'ai le même problème et la solution consistait à raccourcir et à assainir le nom du répertoire (il s'agissait d'un nom de sauvegarde, avec une date et une heure séparées par un point-virgule).

1
Néstor Sánchez A.

Ouvrez le fichier WcfServiceDomain.csproj avec un éditeur de texte et cherchez CrossDomainService.svc.cs

Il sera probablement là deux fois. Supprimez simplement l'une des lignes et le projet fonctionnera à nouveau.

1
Ivan Clay

Je devais supprimer la classe du projet et la recréer à nouveau pour résoudre ce problème.

0
Mario Galván

La façon dont j'ai résolu ce problème était d'aller à l'emplacement du fichier qui était inclus dans l'erreur et de constater qu'il y avait deux fichiers identiques. Supprimer l'un d'entre eux et cela devrait fonctionner.

J'ai dû annuler les modifications en attente par la suite, car les fichiers ont ensuite disparu, mais après une reconstruction, cela a fonctionné. 

0
Sam Bunting

Ce que j'ai fait, c'est que j'ai renommé le fichier en question. Puis nettoyé la solution (en cliquant sur Build> Clean Solution). Puis construit la solution.

Puis renommé le fichier en nom de fichier d'origine. Puis nettoyé la solution et construit à nouveau la solution.

Cela a fonctionné pour moi. Je ne sais pas si ça va marcher pour vous.

0

Pour moi je décharge le projet, Editer le fichier .csproj, Chercher le nom du fichier qui était affiché en erreur

<ItemGroup>
    <Compile Include="Controllers\BaseUserContext.cs" />
</ItemGroup>

Il ne montrait pas plusieurs fois (BaseUserContext.cs), il y avait seulement 1 balise, donc je l'ai enlevé et fonctionne sans erreur.

0
Tarun Dudhatra