尝试加载我的程序集信息文件时出现问题
Problems while trying to load my assembly info file
我正在使用 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
的完整路径
抛出错误:
Could not load file or assembly
'file:///D:\WorkOnD\Work\Adata\Project\EKKEROSS\entry\entry\My
Project\AssemblyInfo.vb' or one of its dependencies. The module was
expected to contain an assembly manifest.
我正在使用“.NET Framework 4.0.7”。
我的 OS 是 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/>
但是没有任何我想要的属性名称...
我想我的网站环境是旧版本。
AssemblyInfo.vb文件是源代码,需要包含在工程中编译成最终的.dll程序集
函数 Assembly.LoadFrom
(及其变体)将加载已编译的 dll 程序集,而不是源代码。重新指向变量 AsseFile
以指向已编译的程序集,您将更接近您想要的解决方案。参考:Assembly.LoadFrom Method
您传递给 Assembly.LoadFrom
的路径将取决于程序集在您的文件系统中的位置,类似于:
AsseFile = "D:\WorkOnD\Work\Adata\Project\EKKEROSS\entry\entry\bin\debug\entry.dll"
然后你可以做:
asm = Assembly.LoadFrom(AsseFile)
我的测试项目的 file/folder 结构如下,您应该适当地映射您的项目设置。
项目名称:VBUnitTest
项目目录是 .vbproj
文件所在的位置
项目目录:D:\Projects\Test Apps\VBUnitTests
Build输出路径默认为bin\debug
,可以在Project Settingsdialog/window.confirmed/changed.
构建输出路径: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 图标,只有一个虚线文档图标,则该文件不包含在项目中。
项目中包含的文件
3
文件未包含在项目中
要将文件包含在项目中,请右键单击它并 select 选择 Include in Project
我正在使用 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
的完整路径
抛出错误:
Could not load file or assembly 'file:///D:\WorkOnD\Work\Adata\Project\EKKEROSS\entry\entry\My Project\AssemblyInfo.vb' or one of its dependencies. The module was expected to contain an assembly manifest.
我正在使用“.NET Framework 4.0.7”。
我的 OS 是 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/>
但是没有任何我想要的属性名称... 我想我的网站环境是旧版本。
AssemblyInfo.vb文件是源代码,需要包含在工程中编译成最终的.dll程序集
函数 Assembly.LoadFrom
(及其变体)将加载已编译的 dll 程序集,而不是源代码。重新指向变量 AsseFile
以指向已编译的程序集,您将更接近您想要的解决方案。参考:Assembly.LoadFrom Method
您传递给 Assembly.LoadFrom
的路径将取决于程序集在您的文件系统中的位置,类似于:
AsseFile = "D:\WorkOnD\Work\Adata\Project\EKKEROSS\entry\entry\bin\debug\entry.dll"
然后你可以做:
asm = Assembly.LoadFrom(AsseFile)
我的测试项目的 file/folder 结构如下,您应该适当地映射您的项目设置。
项目名称:VBUnitTest
项目目录是 .vbproj
文件所在的位置
项目目录:D:\Projects\Test Apps\VBUnitTests
Build输出路径默认为bin\debug
,可以在Project Settingsdialog/window.confirmed/changed.
构建输出路径: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 图标,只有一个虚线文档图标,则该文件不包含在项目中。
项目中包含的文件
文件未包含在项目中
要将文件包含在项目中,请右键单击它并 select 选择 Include in Project