在 CSPROJ 的引用 DLL 中使用系统变量的名称

Using a name of the system variable in the referenced DLL of CSPROJ

Windows 7 x64,MS Visual Studio 2013 高级版。

我用 D:\SDK\Autodesk\AutoCAD\ObjectARX 2009 值创建了一个新的系统变量 ObjectARX 2009。 Windows 资源管理器打开 %ObjectARX 2009% 的正确位置。我想在我的 CSPOJ 文件中使用这个变量作为参考:

<Reference Include="AcMgd">
  <HintPath>$(ObjectARX 2009)\inc-x64\AcMgd.dll</HintPath>
  <Private>False</Private>
</Reference>

但是 Visual Studio 没有看到 AcMgd.dll 文件。

文件存在:.NET Reflector 以 %ObjectARX 2009%\inc-x64\AcMgd.dll 方式打开它。

如果我使用完整路径,那么它工作正常:

<Reference Include="AcMgd">
  <HintPath>D:\SDK\Autodesk\AutoCAD\ObjectARX 2009\inc-x64\AcMgd.dll</HintPath>
  <Private>False</Private>
</Reference>

另外,这样的变体也不错:

<PropertyGroup>
  <ObjectARX_Location>D:\SDK\Autodesk\AutoCAD\ObjectARX 2009</ObjectARX_Location>
</PropertyGroup>

<ItemGroup>
  <Reference Include="AcMgd">
    <HintPath>$(ObjectARX_Location)\inc-x64\AcMgd.dll</HintPath>
    <Private>False</Private>
  </Reference>
</ItemGroup>

为什么 Visual Studio 看不到我对 系统 变量的引用?

在变量名里加个space是自找麻烦

为什么不用下划线命名ObjectARX_2009