3

我在预构建事件中运行 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。我想知道是否有类似的间接方式可以从我的预构建事件命令行中调用它。

4

2 回答 2

4

MSBuild.exe由于您需要的工具与您可以简单地引用它的路径相同,$(MSBuildBinPath)\DataSvcUtil.exe因此它也独立于Framework / Framework64

于 2011-10-13T16:41:10.340 回答
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(检查“注册表属性”部分)

于 2011-10-13T17:06:32.803 回答