#c# #assemblyinfo
#c# #assemblyinfo
Вопрос:
Итак, вот что я пытаюсь сделать.
Я пытаюсь указать имя пользователя, который скомпилировал конкретный проект. Есть ли какой-либо способ, с помощью которого я могу сохранить исходное имя пользователя в dll.
Я попытался создать пользовательский атрибут и использовать его в AssemblyInfo.cs, но он дает мне имя пользователя, который запускает dll, а не кто ее создает.
Любая помощь будет оценена.
Комментарии:
1. Этот вопрос был задан недавно. Возможно, стоит поискать его.
2. не могли бы вы вставить ссылку здесь. Я пытаюсь выполнить поиск, но не нашел.
Ответ №1:
Для изменения информации о сборке я использую событие предварительной сборки, которое запускает пакетный файл для модификации.
Комментарии:
1. На данный момент у меня его нет, я могу опубликовать его позже. Кроме того, примите во внимание, что событие предварительной сборки дает вам практически неограниченные возможности. Если вам удобно с C # (или любым другим языком), просто напишите небольшую программу, которая выполнит требуемую модификацию, и вызовите ее из события предварительной сборки.
Ответ №2:
Вы могли бы написать пользовательское действие MSBuild, которое обновляет атрибут сборки в известном файле перед компиляцией. Недостатком этого является необходимость установки пользовательского шага сборки на всех машинах разработчиков и любых машинах сборки.
Комментарии:
1. К сожалению, нет, но MSBuildTasks могут быть полезны, особенно задача AssemblyInfo . Это должно дать вам хорошее начало в том, как обновить или создать файл AssemblyInfo.cs как часть процесса сборки. Существует также задача пользователя, которая предоставит имя текущего пользователя (есть и другие задачи, которые также могут предоставить подробную информацию о машине сборки).
Ответ №3:
Итак, я обнаружил, что пытаюсь выполнить трюк.
Я создал новый пользовательский атрибут AssemblyCompiler. И путем изменения и использования сценария powershell, показанного здесь . Кажется, это работает.
Другое решение C #
- Создайте новый пользовательский атрибут
- напишите программу на c # для обновления / добавления имени пользователя
- вызовите этот код c # в событии предварительной сборки следующим образом
вызов ….ResourcesOverwriteAssemblyInfo.exe [Я поместил свой исполняемый файл в ресурсы]