【问题标题】:How to access macro variables within csproj file?如何访问 csproj 文件中的宏变量?
【发布时间】:2011-11-17 21:31:10
【问题描述】:

在我的 csproj 文件中,我有不同的构建路径。

<BaseIntermediateOutputPath>C:\Temp\Build\MyProject</BaseIntermediateOutputPath>

在预构建和构建后事件中,我可以访问某些宏变量。

$(OutDir)
$(ProjectName)
$(ProjectPath)
$(SolutionDir)

我可以在我的 csproj 中使用这些变量吗?

例如,我尝试了以下但没有成功。

<BaseIntermediateOutputPath>C:\Temp\Build\$(ProjectName)</BaseIntermediateOutputPath>

【问题讨论】:

    标签: visual-studio-2010 csproj


    【解决方案1】:

    我有类似的要求,使用 $(MSBuildProjectName) 为我完成了这项工作。

      <PropertyGroup>
        <ProjectView>ProjectFiles</ProjectView>
        <BaseIntermediateOutputPath>R:\$(MSBuildProjectName)\obj\</BaseIntermediateOutputPath>
      </PropertyGroup>
    

    这里的 R: 是我的 RAMDISK 驱动器号。

    对于其他可能在正确设置 RAMDISK 驱动器号时遇到问题的人,我使用了一个简单的 VBS 脚本

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colVolumes = objWMIService.ExecQuery _
        ("Select * from Win32_Volume") Where Label = 'RAMDISK'")
    For Each objVolume in colVolumes
        objVolume.DriveLetter = "R:"
        objVolume.Put_
    Next
    

    这可确保加载带有标签 RAMDISK 的任何驱动器都设置为 R: 驱动器,而不是显示的默认驱动器。虽然这不是您的 Q 的一部分,但我相信这对于其他有类似要求的其他人来说会很方便,需要将 RAMDISK 用于他们的 obj 文件,并且发现在 vbproj/csproj 文件中更改驱动器号很麻烦。

    参考资料:

    1. 保留属性:http://msdn.microsoft.com/en-us/library/ms164309%28loband%29.aspx
    2. 更改驱动器号:http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/disk/drives/

    【讨论】:

    • 谢谢。此外,为 ram drive 技巧欢呼。已设置一个以提高构建速度。
    • 效果显着!!我要强调你必须使用$(MSBuildProjectName) 而不是$(ProjectName)。
    猜你喜欢
    • 2021-07-23
    • 1970-01-01
    • 2018-07-15
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多