Как я могу запретить 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 не будет добавлен.