MSDeploy runCommand usando ruta relativa
Estoy tratando de ejecutar un comando como parte de mi proceso de empaque / implementación a través de MSDeploy. En particular, estoy tratando de crear un registro de eventos personalizado ejecutandoinstallutil contra una de mis DLL, pero tengo problemas para especificar uncamino relativo a la DLL desde el directorio de implementación. Para comenzar, agregué la siguiente configuración a mi csproj para generar el proveedor runCommand dentro de mi archivo Manifiesto. Tenga en cuenta la ruta absoluta a la 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>
Después de llamar a msbuild, esto generó mi manifiesto correctamente dentro de mi package.zip. Cuando corríMyTestApp.deploy.cmd / Y correctamente llamó a msdeploy e implementó mis archivos en inetpub \ wwwroot \ MyTestApp y ejecutó mi comando desde el manifiesto a continuación:
<runCommand path="installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll ... etc
El problema que tengo es que no quiero codificar esta ruta DLL a c: \ inetpub \ etc. ¿Cómo puedo hacer la llamada anterior usando elcamino relativo desde mi directorio de implementación en Sitio web predeterminado? Idealmente, me gustaríaMSDeploy para tomar esta ruta y pasarla como una variable a la instrucción runCommand para encontrar la DLL. Entonces podría escribir algo como:<path>installutil $DeploymentDir\NewTestApp\bin\BusinessLayer.dll</path>
sin tener que preocuparse por codificar un camino absoluto en.
¿Hay alguna manera de hacer esto sin usar la ruta absoluta a mi DLL cada vez?