MSDeploy runCommand usando o caminho relativo
Estou tentando executar um comando como parte do meu processo de empacotamento / implantação via MSDeploy. Em particular, estou tentando criar um log de eventos personalizado executandoinstallutil contra uma das minhas DLLs, mas estou tendo problemas para especificar umacaminho relativo para a DLL do diretório de implantação. Para começar, adicionei a configuração abaixo ao meu csproj para gerar o provedor runCommand dentro do meu arquivo de manifesto. Observe o caminho absoluto para a 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>
Depois de chamar o msbuild, isso gerou meu manifesto corretamente dentro do meu package.zip. Quando eu corriMyTestApp.deploy.cmd / Y chamou corretamente msdeploy e implantou meus arquivos no inetpub \ wwwroot \ MyTestApp e executou meu comando no manifesto abaixo:
<runCommand path="installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll ... etc
O problema que estou tendo é que não quero codificar esse caminho DLL para c: \ inetpub \ etc. Como posso fazer a chamada acima usando ocaminho relativo do meu diretório de implantação em Site Padrão? Idealmente, eu gostariaMSDeploy para seguir esse caminho e passá-lo como uma variável para a instrução runCommand para encontrar a DLL. Então eu poderia escrever algo como:<path>installutil $DeploymentDir\NewTestApp\bin\BusinessLayer.dll</path>
sem ter que se preocupar em codificar um caminho absoluto.
Existe alguma maneira de fazer isso sem usar o caminho absoluto para minha DLL todas as vezes?