【问题标题】:Indirect way to reference "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\datasvcutil.exe" in a prebuild event在预构建事件中引用“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\datasvcutil.exe”的间接方式
【发布时间】:2011-10-13 16:30:27
【问题描述】:

我正在预构建事件中运行 datasvcutil.exe 命令。

datasvcutil.exe 位于“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”(在 64 位机器上。)

我可以将其硬编码为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\datasvcutil.exe,但这似乎相当脆弱。当假设的 .net v4.0.30320 出现时,我的预构建事件将不再起作用。

使用 Visual Studio 命令提示符,我可以在没有路径的情况下调用 datasvcutil.exe。我想知道是否有类似的间接方式可以从我的预构建事件命令行中调用它。

【问题讨论】:

    标签: visual-studio visual-studio-2010 prebuild pre-build-event


    【解决方案1】:

    由于您需要的工具与 MSBuild.exe 位于同一路径中,您可以简单地使用 $(MSBuildBinPath)\DataSvcUtil.exe 引用它,这将使其也独立于 Framework / Framework64

    【讨论】:

    • 完美!正是我需要的。
    【解决方案2】:

    我喜欢上面的 Filburts 回答。但是如果你真的想勇敢,你可以调用:

    %VS100COMNTOOLS%\VCVarsQueryRegistry.bat
    rem and query one of the %FrameworkDIR32% or %FrameworkDIR64% environment variables, depending on your choice
    

    如果你更有勇气,MSBuild 能够自行读取注册表 - 以下链接可能会有所帮助:http://msdn.microsoft.com/en-us/library/ms171458.aspx(查看“注册表属性”部分)

    【讨论】:

      猜你喜欢
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      相关资源
      最近更新 更多