Косвенный способ ссылки на «C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ datasvcutil.exe» в событии предварительной сборки - PullRequest
3 голосов
/ 13 октября 2011

Я запускаю команду 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 без указания пути.Мне интересно, есть ли подобный косвенный способ вызвать это из моей командной строки события перед сборкой.

Ответы [ 2 ]

4 голосов
/ 13 октября 2011

Поскольку нужный вам инструмент находится в том же пути, что и MSBuild.exe, вы можете просто ссылаться на него с помощью $(MSBuildBinPath)\DataSvcUtil.exe, что сделает его также независимым от Framework / Framework64

2 голосов
/ 13 октября 2011

Мне нравится ответ 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(см. раздел «Свойства реестра»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...