我正在按照在线教程使用 PInvoke 来调用 C++ 本机 .dll。 所有事情似乎都工作正常,直到我需要在 C# 项目的“属性”页面中为构建工件设置基本输出目录。
正如你在这里看到的,路径没有显示$SolutionDir,它是空白的
当我尝试在构建后事件中使用它时,它也告诉我这是一个未定义的值。 在构建结束时,有一个 未定义 显示
我几乎可以使用任何其他宏,例如 $(Configuration) $(Platform) 等,但 $(SolutionDir) 不起作用。 最近是否已根据支持删除了此功能?
我的 Visual Studio 版本是 Microsoft Visual Studio Professional 2022 (2)(64 位)- 当前 版本 17.11.4
我首先尝试在基本输出目录中使用此宏,然后当它不起作用时,我尝试在事件部分的脚本中使用它,并尝试将复制 ($SolutionDir) ile 命令复制到输出目录我想要使用。 但无论我在哪里尝试使用 $(SolutionDir),它都不起作用。
我希望解决方案目录能够扩展到解决方案目录路径的目录。 有趣的是,这条路径似乎在 C++ 项目属性页面中有效:
当我构建 C++ 项目时,这条路径正在工作:
对于那些对解决方法感兴趣的人,我找到了以下方法来执行此操作。 如果您编辑 C# .proj 文件并将其用作随后复制到输出路径的项目,这似乎可以工作。
<ItemGroup>
<Content Include="..\NativeLibrary\bin\$(Platform)\$(Configuration)\NativeLibrary.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
感谢提供者的回答:有没有更好的方法将原生dll复制到bin文件夹?
但是,最好知道为什么 SolutionDir 无法在任何构建事件中访问。