gpt4 book ai didi

c# - 为什么 Microsoft.Build.Evaluation 在 64 位 PC 上将 $(ProgramFiles) 评估为 "c:\program files"?

转载 作者:可可西里 更新时间:2023-11-01 09:56:00 26 4
gpt4 key购买 nike

我有一个 C# 项目文件 (.csproj),其中包含对 $(ProgramFiles) 的引用。我使用的是 64 位 Windows 7。当我在 Visual Studio 2010 中编译这个项目文件时,它会在 c:\Program Files (X86) 中正确定位文件。

如果我想变聪明,而是使用 Microsoft.Build.Evaluation.ProjectCollection.LoadProject([project file]),试图在代码中构建它,它会评估 $(ProgramFiles)错误地作为 c:\Program Files

知道问题的原因是什么吗?

最佳答案

Visual Studio 2010 是一个 32 位进程,WOW将为 32 位进程提供 c:\Program Files (X86)

我的假设:

If I try to be clever and instead use Microsoft.Build.Evaluation.ProjectCollection.LoadProject([project file]), in an attempt to build it in code

是不是当您“在代码中”执行此操作时,您的代码正在执行 x64,因此您获得了正常的环境值。

如果您需要 x86 程序文件目录的路径,您可以使用 x64 中的 ProgramFiles(x86) 环境变量。在 MSBuild 中,它是 $(MSBuildProgramFiles32)

关于c# - 为什么 Microsoft.Build.Evaluation 在 64 位 PC 上将 $(ProgramFiles) 评估为 "c:\program files"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com