3

我有以下情况:

  • C# 项目 A 通过 p/invoke 使用非托管 dll:[DllImport("someUnmanaged.dll")]
  • 项目A配置为在编译时将“someUnmanaged.dll”复制到项目bin文件夹中。这工作正常。

  • C# 项目 B、C 和 D 都引用 A。但它们不会自动复制非托管 dll。我必须配置每个项目以复制非托管 dll。

  • 因此,如果另一个开发人员想使用我的 projectA.dll,他们必须确切知道要复制哪些未管理的 dll,以及如何配置他们的 VS 项目。

如果项目 A 是托管 c++/cli 项目而不是 ac# 项目,我可以/ASSEMBLYLINKRESOURCE "...\someUnmanaged.dll"告诉编译器在复制 projectA.dll 时始终复制 someUnmanaged.dll。

(这是配置属性 -> 链接器 -> 程序集链接资源中的设置)

/ASSEMBLYLINKRESOURCE以某种方式注释projectA.dll,以便在另一个项目中引用此 dll 时,Visual Studio 也会自动搜索someUnmanaged.dll,并在编译期间复制两者。

如何在 ac# 项目中获得此功能?

4

0 回答 0