VS解决方案与C#项目依赖于C项目,最佳实践

时间:2013-05-05 00:35:36

标签: c# c visual-studio-2012 configuration pinvoke

我有两个完整源代码项目,一个在C#中,另一个在C中,在一个VS 2012解决方案中。 C#代码通过PInvoke调用C .dll。

我设置了对解决方案级别的依赖,告诉解决方案在构建C#项目之前构建C项目。

理想情况下,我希望生成的C .dll在我执行的C#dll旁边,所以我会通过我DllImport的裸名来引用它。但是,这并不容易,因为使用我的C#项目的另一个项目不会复制C .dll。如果我的所有项目都是.NET,则不会存在此问题,因为MS Build会将.dll复制到主机。

  

我缺少哪些最佳做法或神奇的VS选项,   使C .dll以与其他方式相同的方式被复制   .NET程序集呢?

此问题被标记为重复,但事实并非如此。问题提到:

  • 这是关于第三方.dll,这是关于同一解决方案中的自有项目。
  • 该问题的接受答案没有考虑将调试复制到调试和释放到发布。
  • 接受的答案没有显示如何复制依赖链(C# - > C# - > C)。

我刚刚找到了一个灵感来自https://stackoverflow.com/a/13944692/157017的解决方案,它解决了这种特殊情况。

  <ItemGroup>
    <Content Include="$(SolutionDir)$(Platform)\$(Configuration)\MyCProject.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

0 个答案:

没有答案
相关问题