Проблемы при попытке загрузить мой файл информации о сборке - PullRequest
0 голосов
/ 02 февраля 2019

Я использую Visual Studio 2017 для создания веб-сайта.Когда я начал свой проект, я заметил, что не было никакого файла информации о сборке.Таким образом, я не смог загрузить и получить нужные мне атрибуты.Поэтому я создал подпапку с именем My Project и поместил внутрь файл с именем AssemblyInfo.vb, который выглядит так:

<Assembly: AssemblyTitle("ffffffff")>
<Assembly: AssemblyDescription("ddddddddd")>
<Assembly: AssemblyCompany("ccccccccccc")>
<Assembly: AssemblyProduct("hhhhhhhhhhhhh")>
<Assembly: AssemblyCopyright("Copyright © gggggggggg")>
<Assembly: AssemblyTrademark("vvvvvvvvvv")>

<Assembly: ComVisible(True)>

<Assembly: Guid("53a50112-05e2-43c2-b98c-d86d10b00048")>
<Assembly: AssemblyVersion("1.0.27.3")>
<Assembly: AssemblyFileVersion("1.0.27.3")>
<Assembly: NeutralResourcesLanguage("en")>

С этого момента я использую свой код в порядкеget информация, которая мне нужна.И в очереди

Dim asm As Object = Nothing
asm = Assembly.LoadFrom(AsseFile)

«AsseFile» - это полный путь к AssemblyInfo.vbВыкидывает мне ошибку:

Не удалось загрузить файл или сборку 'file: /// D: \ WorkOnD \ Work \ Adata \ Project \ EKKEROSS \ entry \ entry \ My Project \ AssemblyInfo.vb' или одну из ее зависимостей,Модуль должен содержать манифест сборки.

Я использую ".NET Framework 4.0.7".Моя ОС - Windows 7 UlimateА я работаю в VS 2017На языке разработки vb.net

Есть ли кто-нибудь, чтобы помочь мне? ВНИМАНИЕ Я смотрю ответы на все другие решения, но я не нашел никакого решения по моей проблеме Сложение Код, который я использую для чтения файла:

Dim asm As Object = Nothing
            asm = Assembly.GetExecutingAssembly().GetName().Version
            Dim FVI() As Object = Assembly.GetCallingAssembly.GetCustomAttributes(True)
            For n As Integer = 0 To FVI.Count - 1
                If FVI(n).TypeId.Name = "AssemblyCopyrightAttribute" Then
                    CopyRight = FVI(n).Copyright
                End If
            Next<br/>

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

1 Ответ

0 голосов
/ 02 февраля 2019

Файл AssemblyInfo.vb является исходным кодом, его необходимо включить в проект и скомпилировать в окончательную сборку .dll

Функция Assembly.LoadFrom (и ее варианты) загрузит скомпилированную dllСборка, а не исходный код.Укажите переменную AsseFile, чтобы указать на скомпилированную сборку, и вы окажетесь гораздо ближе к желаемому решению.См. Метод Assembly.LoadFrom

Путь, который вы передадите Assembly.LoadFrom, будет зависеть от того, где находится сборка в вашей файловой системе, это будет что-то вроде:

AsseFile = "D:\WorkOnD\Work\Adata\Project\EKKEROSS\entry\entry\bin\debug\entry.dll"

И тогда вы можете сделать:

asm = Assembly.LoadFrom(AsseFile)

Структура файла / папки для моего тестового проекта такая же, как и ниже, вы должны соответствующим образом отобразить настройки вашего проекта.

Название проекта: VBUnitTest

В каталоге проектов находится файл .vbproj

Каталог проекта: D: \ Projects \ Test Apps \ VBUnitTests

Выходной путь сборки по умолчанию bin\debug, это можно подтвердить / изменить в диалоговом окне / окне «Параметры проекта».

Выходной путь сборки: D: \ Projects \ Test Apps\ VBUnitTests \ bin \ Debug

Для моего тестового проекта переменная AsseFile будет содержать значение: D:\Projects\Test Apps\VBUnitTests\bin\Debug\VBUnitTest.dll

Теперь вы написали, что вы вручную создали My Project папка, а также файл AssemblyInfo.vb, вы также добавили эти новые элементы в проект?

КомуЧтобы убедиться, что файл AssemblyInfo.vb включен в проект, выберите параметр View All Files на панели инструментов обозревателя решений (значок с синим квадратом на моем снимке экрана).Вы должны увидеть файл AssemblyInfo.vb, указанный на скриншоте, с красивым значком VB рядом с ним.Если рядом с ним нет значка VB, а есть только пунктирная иконка документа, то файл не включается в проект.

Solution Explorer

Файл, включенный в проект

Included in project 3

Файл НЕвключены в проект

Not included in project

Чтобы включить файл в проект, щелкните его правой кнопкой мыши и выберите параметр Include in Project

File right-click

...