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来说,微软的相关文档实在是不怎么友好。
    全或许全,但是就像给初学者一本字典一样。
    入门教程倒是有,但是也像教了识字就丢出来一本高数课本一样。。

  • 相关阅读:
    A*寻路算法
    Flump使用GPU渲染Flash动画
    Flash AS3.0 垃圾回收机制
    flash builder无法启动的解决方法
    AS3.0 BitmapData类介绍
    x&(x1)表达式的意义
    Feathers: Stage3D加速的UI组件
    Knockout.js入门
    TcxStyleRepository使用示例
    TPageControl使用代码节选
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12608253.html
Copyright © 2011-2022 走看看