我有一个要从Python使用的.NET Standard 2.0类库。 该库依赖于某些私有和公共的NuGet软件包。
我设法从artifact on appveyor安装了pythonnet
的最新开发版本,并且可以运行以下导入代码:
import clr
import sys
sys.path.append(r'C:\....\My.Library\bin\Debug\netstandard2.0')
ref = clr.AddReference("My.Library")
上面的代码运行良好,但是当我尝试从模块名称空间导入...
from My.Library import MyClass
# >>> ModuleNotFoundError: No module named 'My'
当我尝试做ref.get_ExportedTypes()
时,我得到了:
System.IO.FileNotFoundException:
Die Datei oder Assembly "Google.Protobuf, Version=3.6.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"
oder eine Abhängigkeit davon wurde nicht gefunden.
Das System kann die angegebene Datei nicht finden.
bei System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)
bei System.Reflection.RuntimeAssembly.GetExportedTypes()
基本上,这是关于NuGet依赖项的FileNotFoundException。 构造我的DLL文件/使用NuGet依赖项导入它的正确方法是什么?
谢谢
答案 0 :(得分:1)
通过将所有依赖项放在一个目录中,导入可以工作。 How to get .NET Core projects to copy NuGet references to build output?
中提供了几种实现此目的的选项,例如dotnet publish
。