MSDeploy runCommand с использованием относительного пути

Я пытаюсь запустить команду как часть моего процесса упаковки / развертывания через MSDeploy. В частности, я пытаюсь создать собственный журнал событий, запустив installutil для одной из моих DLL, но у меня возникли проблемы с указанием относительного пути к DLL из каталога развертывания . Для начала, Я добавил приведенную ниже конфигурацию в свой csproj, чтобы сгенерировать поставщик runCommand внутри моего файла манифеста. Обратите внимание на абсолютный путь к DLL.

<PropertyGroup>
    <!-- Extends the AfterAddIisSettingAndFileContentsToSourceManifest action to create Custom Event Log -->
    <IncludeEventLogCreation>TRUE</IncludeEventLogCreation>
    <AfterAddIisSettingAndFileContentsToSourceManifest Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)'==''">
      $(AfterAddIisSettingAndFileContentsToSourceManifest);
      CreateEventLog;
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEventLog" Condition="'$(IncludeEventLogCreation)'=='TRUE'">
    <Message Text="Creating Event Log" />
    <ItemGroup>
      <MsDeploySourceManifest Include="runCommand">
        <path>installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll</path>
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>
  <ItemGroup>

После вызова msbuild мой манифест был правильно сгенерирован внутри моего package.zip. Когда я запустил MyTestApp.deploy.cmd / Y , он правильно вызвал msdeploy, развернул мои файлы в inetpub \ wwwroot \ MyTestApp и выполнил мою команду из манифеста ниже:

<runCommand path="installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll ... etc 

У меня возникла проблема: я делаю не хочу жестко указывать этот путь DLL в c: \ inetpub \ etc. Как я могу выполнить вышеуказанный вызов, используя относительный путь из моего каталога развертывания на веб-сайте по умолчанию? В идеале я бы хотел, чтобы MSDeploy взял этот путь и передал его как переменную в оператор runCommand, чтобы найти DLL. Тогда я мог бы написать что-то вроде: <путь> installutil $ DeploymentDir \ NewTestApp \ bin \ BusinessLayer.dll , не беспокоясь о жестком кодировании абсолютного пути в.

Есть ли способ сделать это, не используя абсолютный путь к моей DLL каждые время?

15
задан skMed 1 February 2011 в 23:02
поделиться