VS 2015, обновление EDMX дает несколько файлов Designer.cs [duplicate]

Использование базовой функции R aggregate:

aggregate(value ~ name, dat1, I)

# name           value.1  value.2  value.3  value.4
#1 firstName      0.4145  -0.4747   0.0659   -0.5024
#2 secondName    -0.8259   0.1669  -0.8962    0.1681
10
задан Doozer Blake 18 October 2011 в 14:59
поделиться

7 ответов

Похоже, что вы удалили и воссоздали модель (или что-то подобное), но оставили исходный файл дизайнера в каталоге. Затем, когда вы добавили новую модель, ей пришлось использовать Model1 вместо Model в качестве имени файла конструктора. Вы пробовали исключить файл Model.Designer.cs и оставить его вместо файла Model1.Designer.cs?

Хорошо, глядя на файл проекта для нашего проекта с моделью, я могут видеть следующие потенциально релевантные разделы:

<Compile Include="Domain\Model.Designer.vb">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>Model.edmx</DependentUpon>
</Compile>

Я считаю, что это говорит проекту, что файл кода является частью проекта и должен быть подносом файла model.edmx и быть регенерированным когда он меняется.

У нас также есть этот раздел:

<EntityDeploy Include="Domain\Model.edmx">
  <Generator>EntityModelCodeGenerator</Generator>
  <LastGenOutput>Model.Designer.vb</LastGenOutput>
  <CustomToolNamespace>Domain</CustomToolNamespace>
</EntityDeploy>

Не уверен, какой из этих элементов управляет сгенерированным именем файла, но вы можете попробовать вручную отредактировать свой файл проекта, чтобы узнать, , Я бы сказал, что вам нужно будет менять оба одновременно, а не только один.

10
ответ дан Kevin O'Donovan 20 August 2018 в 15:00
поделиться
  • 1
    В последнее время я не снимал и не воссоздавал, но это именно то, на что это похоже. Я сейчас удалил оригинальный Model.Designer.cs. Просто надеялся избежать этого с помощью контроля источника и т. Д. – Doozer Blake 18 October 2011 в 16:16
  • 2
    Не могу понять, почему это произошло, но удаление оригинального Designer.cs действительно сработало, поэтому спасибо! – Doozer Blake 19 October 2011 в 13:21

У меня была та же проблема, модель создавала второй файл designer.cs. Это произошло после того, как вы столкнулись с целым рядом проблем с моей установкой vs2010, связанной с дизайнером (каким-то образом vs2010 потерял ссылки на кучу DLL, связанную с дизайнером модели Entity Entity, требующую повторных и повторных попыток).

Взяв совет Кевина, я вручную отредактировал файл проекта, чтобы указать на мой предпочтительный файл, и он сработал. Дизайнер остановил воссоздание второго файла.

0
ответ дан gdbj 20 August 2018 в 15:00
поделиться

Если вы используете любые утилиты управления версиями, такие как SVN, самый простой способ исправить это - сравнить рабочую копию с предыдущими версиями и вернуть одну строку в .csproj, где имя конструктора изменилось на суффикс '1'.

0
ответ дан Michael Brennt 20 August 2018 в 15:00
поделиться

Это случилось со мной сегодня, и я решил это:

  1. Закройте панель редактора edmx, если вы ее открыли.
  2. В проводнике решений удалите
  3. Сохранить все
  4. Переименуйте файл edmx на другое имя (например, 2.edmx)
  5. Сохранить все
  6. Откройте файл edmx и сохраните его для восстановления файла конструктора.
  7. В проводнике решений переименуйте файл edmx обратно в исходное имя.
3
ответ дан Rick Velde 20 August 2018 в 15:00
поделиться
  • 1
    Можете подтвердить, следуя инструкциям, это сработало и для меня. – Lazlow 29 March 2017 в 13:13
0
ответ дан thelem 20 August 2018 в 15:00
поделиться

Была та же проблема, и ни один из старых ответов не работал для меня.

My Cause (в .csproj):

 <Compile Include="DAL\MyDataSet.cs">
   <DependentUpon>MyDataSet.xsd</DependentUpon>
   <SubType>Component</SubType>
 </Compile>

Решение:

 <Compile Include="DAL\MyDataSet.cs">
   <DependentUpon>MyDataSet.xsd</DependentUpon>
 </Compile>

Дополнительный SubType вызвал MSDataSetGenerator запускается дважды каждый раз. После удаления подтипа вам все равно нужно удалить любые другие ошибочно созданные записи MyDataSet1.Designer.cs. См. Сообщение Кевина для нескольких примеров.

0
ответ дан user1361991 20 August 2018 в 15:00
поделиться

Причина:

Я могу воссоздать это (и делать по ошибке время от времени): происходит попытка сохранить диаграмму базы данных (файл edmx) во время запуска проекта, чтобы Visual Studio не могла писать в различные файлы и генерирует новые имена. Могут быть другие способы воссоздать его, сделав файлы недоступными для записи.

Симптомы:

  • [имя_файла] Model1.Designer.cs, [ projectname] Model2.Designer.vb и т. д. вместе с [projectname] Model.Designer.cs, [projectname] Model.Designer.vb файлы
  • дополнительные файлы enitity в виде [имя_объекта] 1.vb, [имя_объекта] 1.cs, например файл файла Person1.vb
  • , содержит ссылки на избыточные файлы, такие как:
<Compile Include="Models\DataContexts\FooModel.Designer.vb" />

<Compile Include="Models\DataContexts\FooModel1.Designer.vb">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>FooModel.edmx</DependentUpon>
</Compile>
  • файл проекта имеет ссылку с Model1.Designer, Model2.Designer и т. Д., Например:
 <EntityDeploy Include="Models\DataContexts\FooModel.edmx">
   <Generator>EntityModelCodeGenerator</Generator>
   <LastGenOutput>FooModel1.Designer.vb</LastGenOutput>
</EntityDeploy>
  • Файл проекта имеет ссылки на несколько объектов или объектов с 1.vb или 1.cs в имени файла.
<Compile Include="Models\Entities\Person1.vb" />
  • Проект может правильно работать и запускаться, но новые файлы могут отсутствовать в управлении версиями.

Устранение

  1. Закрыть Visual Studio
  2. Сделать резервную копию папки проекта.
  3. Исправить файлы: перейти к папке в проекте с помощью файлов контекста данных s uch как Designer.vb, Designer.cs, [projectname] Model.Designer.vb, [projectname] Model.edmx Сохранять самую последнюю измененную версию дубликатов файлов и удалять все остальные. Переименуйте эти файлы для удаления 1s, 2s и т. Д. Из имен файлов. Например, если [projectname] Model1.Designer.vb, [projectname] Model2.Designer.vb, [projectname] Model.Designer.vb существуют и [имя_программы] Model2 .Designer.vb имеет самую последнюю измененную дату, удаляет другую и переименовывает [projectname] Model2.Designer.vb в [projectname] Model.Designer.vb. Сделайте то же самое с любыми другими файлами с дубликатами или 1.vb, добавленными к ним 1.cs.
  4. Исправить файл проекта. Откройте файл проекта с помощью вашего любимого xml или текстового редактора и исправьте следующие ссылки. (Поиск «1.», «Model1», «2.», «Model2» также найдет их.)
Change:

    <Compile Include="Models\DataContexts\FooModel.Designer.vb" />
    <Compile Include="Models\DataContexts\FooModel1.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>FooModel.edmx</DependentUpon>
    </Compile>

To:

    <Compile Include="Models\DataContexts\FooModel.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>FooModel.edmx</DependentUpon>
    </Compile>



Change:
    <Compile Include="Models\DataContexts\Person1.vb">
      <DependentUpon>Foo.tt</DependentUpon>
    </Compile>

To:

    <Compile Include="Models\DataContexts\Person1.vb">
      <DependentUpon>Foo.tt</DependentUpon>
    </Compile>



Change:
    <EntityDeploy Include="Models\DataContexts\FooModel.edmx">
      <Generator>EntityModelCodeGenerator</Generator>
      <LastGenOutput>FooModel1.Designer.vb</LastGenOutput>
    </EntityDeploy>


To:

    <EntityDeploy Include="Models\DataContexts\FooModel.edmx">
      <Generator>EntityModelCodeGenerator</Generator>
      <LastGenOutput>FooModel.Designer.vb</LastGenOutput>
    </EntityDeploy>
  1. Откройте визуальную студию и все должно быть хорошо.
2
ответ дан user2048773 20 August 2018 в 15:00
поделиться
  • 1
    Спасибо - удаление записи компиляции Include для model1.designer.cs исправил ее для меня! – WillMcKill 19 October 2016 в 16:25
Другие вопросы по тегам:

Похожие вопросы: