zoukankan      html  css  js  c++  java
  • .net编译,将文件拷贝到指定目录

    场景:
    需要引用一个第三方的native dll库,c语言写的。
    通过DllImport属性调用,所以要确保运行目录有该库(假设是a.dll)。

    问题:
    对于可以添加reference的库,vs编译时会自动将其拷贝到输出目录。
    但是原生c库,无法添加引用,所以这样行不通。

    那么使用属性里的"Copy if Newer"呢?
    还是不行,因为我不想把这个库放在根目录,所以建立了一个dll目录,把库放在目录中,但是这样拷贝的时候,会连同目录结构一起拷贝。
    导致程序运行的时候,找不到这个库

    结局方法:
    参考Stackoverflow上的这个解答 ,编辑csproj文件,找到拷贝对应的配置。

      <ItemGroup>
        <None Include="Dlla.dll">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
      </ItemGroup>
    

    修改为

      <ItemGroup>
        <None Include="Dlla.dll">
          <Link>a.dll</Link> <!-- 新增了这一行 -->
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
      </ItemGroup>
    

    即可。

    吐槽时刻:
    对于.net来说,微软的相关文档实在是不怎么友好。
    全或许全,但是就像给初学者一本字典一样。
    入门教程倒是有,但是也像教了识字就丢出来一本高数课本一样。。

  • 相关阅读:
    django通用视图(类方法)
    学期总结
    计算机网络复习
    面试总结二
    电话面试总结
    Linux用户管理-中
    Linux之用户管理--初级上
    web聊天室总结
    聊一聊JQ中delegate事件委托的好处
    git的使用[转]
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12608253.html
Copyright © 2011-2022 走看看