Как я могу запретить Visual Studio создавать лицензию .licx

Мы используем сторонние элементы управления в нашем проекте. Почти каждый раз, когда я дважды нажимаю на файл с дизайном, Visual Studio пытается привлечь дизайнера с героическим усилием, и после некоторой невосприимчивости он поставляет (рождает) файл license.licx в наше решение. Это лишний раз нарушает исходный контроль: добавление файла также изменяет csproj, а также исходный файл кода плюс файл designer.cs(хотя в них нет никаких изменений).

  • Я хочу только увидеть код (щелкните правой кнопкой мыши, просмотреть код), я не хочу видеть дизайнерский вид.
  • Каждый раз, когда мне нужно отменять ненужные изменения, и это требует времени (наше решение является огромным), а Visual Studio снова не отвечает, поскольку он перезагружает весь shebang, поскольку csproj изменился.
  • Когда я дважды щелкаю, я сразу понимаю, что я сделал, но это уже слишком поздно, часы начинают измельчать.

Если кто-нибудь знает, как отключить добавление этого licx, пожалуйста, дайте мне знать. FYI: соответствующими сторонними библиотеками являются DevExpress WinForms и IdeaBlade DevForce Classic (который имеет некоторую интеграцию с DevExpress). Я использую VS 2012. И наш продукт - продукт конечного пользователя, а не сторонняя библиотека.

Уточнение: речь идет о среде разработки. См. Как работает модель лицензирования компонентов .Net -. Не рекомендуется хранить ее в контроле источника. Я не хочу об этом спорить. Позвольте сосредоточиться на том, как предотвратить Visual Studio, чтобы попытаться создать его все время.

Ответ 1

Вы можете создать событие post build, которое удалит для вас файл .licx. Мы столкнулись с этим раздражением в нашей команде, и помимо ручного исключения или удаления его, пост-сборка - это ваш лучший выбор. Каждый раз, когда вы открываете Windows Form, файл будет добавлен снова, если эта форма ссылается или использует любую из сторонних DLL.

Вы можете указать события до и после сборки через консоль или щелкнув правой кнопкой мыши по проекту и выбрав "Свойства" → "События сборки". Надеюсь это поможет.

Ответ 2

Если кто-то ищет решение этой проблемы, потому что они используют предварительно скомпилированные лицензии с помощью инструмента Lc.exe и не хотят, чтобы license.licx конфликтует на сервере сборки, отредактируйте файл csproj и измените строку, которая выглядит так:

<EmbeddedResource Include="Properties\licenses.licx" />

в это:

<ItemGroup Condition=" '$(Configuration)' != 'Release' " > <EmbeddedResource Include="Properties\licenses.licx" /> </ItemGroup>

Ответ 3

Для вашей точки № 1 вы можете предотвратить двойное нажатие на открытие конструктора, но вместо этого откройте редактор кода по умолчанию.

Вы можете сделать это:

  • щелкните правой кнопкой мыши файл .cs, который имеет форму
  • выберите "Открыть с помощью..."
  • выберите "Редактор CSharp" (или VB)
  • нажмите "Установить по умолчанию"
  • и ОК

Если вы хотите изменить его позже, выполните ту же процедуру, но выберите "Редактор форм CSharp".

Ответ 4

Это license.licx важно. Вы действительно хотите, чтобы в ваших проектах использовались компоненты, лицензированные у третьих лиц. Если вы не используете сторонние компоненты, файл licences.licx не будет добавлен.