Я пытаюсь запустить команду как часть моего процесса упаковки / развертывания через 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.Тогда я мог бы написать что-то вроде: <path>installutil $DeploymentDir\NewTestApp\bin\BusinessLayer.dll</path>
, не беспокоясь о жестком кодировании абсолютного пути в.
Есть ли способ сделать это без использования абсолютного пути к моей DLL каждый раз?