我有两个完整源代码项目,一个在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程序集呢?
此问题被标记为重复,但事实并非如此。问题提到:
我刚刚找到了一个灵感来自https://stackoverflow.com/a/13944692/157017的解决方案,它解决了这种特殊情况。
<ItemGroup>
<Content Include="$(SolutionDir)$(Platform)\$(Configuration)\MyCProject.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>