我在预构建事件中运行datasvcutil.exe命令。
datasvcutill .exe位于"C:WindowsMicrosoft.NETFramework64v4.0.30319"(64位机器)
我可以将其硬编码为C:WindowsMicrosoft.NETFramework64v4.0.30319datasvcutil.exe,但这似乎相当脆弱。当一个假想的。net v4.0.30320出来时,我的预构建事件将不再工作。
在Visual Studio命令提示符下,我可以调用datasvcutil.exe而不输入路径。我想知道是否有类似的间接方式从我的预构建事件命令行调用此。
由于您需要的工具与MSBuild.exe
在相同的路径中,您可以简单地使用$(MSBuildBinPath)DataSvcUtil.exe
引用它,这将使它也独立于Framework/Framework64
我喜欢上面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(检查"注册表属性"部分)