ввод имени пользователя в сборке c # — кто создает эту dll

#c# #assemblyinfo

#c# #assemblyinfo

Вопрос:

Итак, вот что я пытаюсь сделать.

Я пытаюсь указать имя пользователя, который скомпилировал конкретный проект. Есть ли какой-либо способ, с помощью которого я могу сохранить исходное имя пользователя в dll.

Я попытался создать пользовательский атрибут и использовать его в AssemblyInfo.cs, но он дает мне имя пользователя, который запускает dll, а не кто ее создает.

Любая помощь будет оценена.

Комментарии:

1. Этот вопрос был задан недавно. Возможно, стоит поискать его.

2. не могли бы вы вставить ссылку здесь. Я пытаюсь выполнить поиск, но не нашел.

Ответ №1:

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

Комментарии:

1. На данный момент у меня его нет, я могу опубликовать его позже. Кроме того, примите во внимание, что событие предварительной сборки дает вам практически неограниченные возможности. Если вам удобно с C # (или любым другим языком), просто напишите небольшую программу, которая выполнит требуемую модификацию, и вызовите ее из события предварительной сборки.

Ответ №2:

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

Комментарии:

1. К сожалению, нет, но MSBuildTasks могут быть полезны, особенно задача AssemblyInfo . Это должно дать вам хорошее начало в том, как обновить или создать файл AssemblyInfo.cs как часть процесса сборки. Существует также задача пользователя, которая предоставит имя текущего пользователя (есть и другие задачи, которые также могут предоставить подробную информацию о машине сборки).

Ответ №3:

Итак, я обнаружил, что пытаюсь выполнить трюк.

Я создал новый пользовательский атрибут AssemblyCompiler. И путем изменения и использования сценария powershell, показанного здесь . Кажется, это работает.

Другое решение C #

  1. Создайте новый пользовательский атрибут
  2. напишите программу на c # для обновления / добавления имени пользователя
  3. вызовите этот код c # в событии предварительной сборки следующим образом

вызов ….ResourcesOverwriteAssemblyInfo.exe [Я поместил свой исполняемый файл в ресурсы]