.net可移植类库包含Microsoft.VisualBasic作为依赖项

时间:2016-12-22 12:52:25

标签: .net vb.net xamarin mono xamarin.android

我创建了一个可移植的类库,应该在xamarin项目中使用,我删除了Project中显式的Microsoft.VisualBasic引用。 在xamarin项目中使用库会导致以下编译时错误:

  

加载程序集时出现异常:System.IO.FileNotFoundException:   无法加载程序集'Microsoft.VisualBasic,Version = 10.0.0.0,   Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。也许它没有   存在于Mono for Android个人资料?Dateiname:   “Microsoft.VisualBasic.dll”bei   Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference   参考,ReaderParameters参数)bei   Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection的1 assemblies, AssemblyDefinition assembly, Boolean topLevel) bei Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection 1   程序集,AssemblyDefinition程序集,布尔topLevel)bei   Xamarin.Android.Tasks.ResolveAssemblies.Execute()

当我使用依赖性walker(ildasm.exe)检查.dll文件时,我注意到,Microsoft.VisualBasic被列为依赖项:

.assembly extern Microsoft.VisualBasic
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
  .ver 10:0:0:0
}

有人能告诉我为什么Microsoft.VisualBasic仍然是类库的依赖项以及如何解决这个问题?

谢谢Ced

2 个答案:

答案 0 :(得分:0)

好奇,因为我之前没有尝试过这个。找到一些可能有用的细节,经过一些挖掘后,有一个编译器选项可以使用-novbruntimeref(旧代码项目Article)。搜索该文本会给出一些引导,表明您可以手动编辑项目文件并向属性组添加行也可以执行相同的操作。

<NoVBRuntimeReference>On</NoVBRuntimeReference>

虽然有些页面的值为“true”而不是“on”。但尚未测试过。

答案 1 :(得分:0)

您需要更改编辑选项。只需将Option Strict切换为“On”,编译器就不会绑定Microsoft.Visualbasic。它取决于后期绑定选项,这是vb.net的一个功能,有时候会出现问题!

Xamarin摇滚......