在任何首选项文本框中使用 Visual Studio 2022 C# 项目时,$(SolutionDir) 为空

问题描述 投票:0回答:1

我正在按照在线教程使用 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++项目中使用$(SolutionDir)

当我构建 C++ 项目时,这条路径正在工作:

输出路径在这里正确解析为我的解决方案文件的路径。

visual-studio-2022
1个回答
0
投票

对于那些对解决方法感兴趣的人,我找到了以下方法来执行此操作。 如果您编辑 C# .proj 文件并将其用作随后复制到输出路径的项目,这似乎可以工作。

<ItemGroup>
  <Content Include="..\NativeLibrary\bin\$(Platform)\$(Configuration)\NativeLibrary.dll">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>

感谢提供者的回答:有没有更好的方法将原生dll复制到bin文件夹?

但是,最好知道为什么 SolutionDir 无法在任何构建事件中访问。

© www.soinside.com 2019 - 2024. All rights reserved.