Настройки цели ClickOnce - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать файл .bat для публикации моего приложения, используя ClickOnce через командную строку.Я нашел этот отличный пост здесь, в StackOverflow, который предлагает создать новый <Target> в файле .csproj.Код из поста выглядит следующим образом (я удалил часть clean):

<PropertyGroup>
<ProjLocation>D:\Test\Projects\ClickOncePublish\ClickOncePublish</ProjLocation>
<ProjLocationReleaseDir>$(ProjLocation)\bin\Debug</ProjLocationReleaseDir>
<ProjPublishLocation>$(ProjLocationReleaseDir)\app.publish</ProjPublishLocation>
<DeploymentFolder>D:\Test\Publish\</DeploymentFolder>
</PropertyGroup>

<Target Name="Test" DependsOnTargets="Clean">

  <MSBuild Projects="$(ProjLocation)\$(ProjectName).csproj" 
    Properties="$(DefaultBuildProperties)" 
    Targets="Publish"/>

  <ItemGroup>
    <SetupFiles Include="$(ProjPublishLocation)\*.*"/>
    <UpdateFiles Include="$(ProjPublishLocation)\Application Files\**\*.*"/>
  </ItemGroup>


    <Copy SourceFiles="@(SetupFiles)" DestinationFolder="$(DeploymentFolder)\" />
    <Copy SourceFiles="@(UpdateFiles)" DestinationFolder="$(DeploymentFolder)\Application Files\%(RecursiveDir)"/>
</Target>

Проблема, с которой я столкнулся здесь, заключается в том, что я хотел бы, чтобы файл работал и для других.И использование жестко закодированного <ProjLocation> делает этот вид хитрым.Есть ли способ сделать путь относительным или заставить его работать на других ПК?

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете найти все доступные константы msbuild здесь Общие макросы для команд и свойств сборки

Все они находятся в вашей среде развертывания.Ваша константа ProjLocation выглядит как $ (ProjectDir) .

В любом случае, если вам нужно выйти из текущей директории, вы можете использовать относительный путь, подобный этому:

$(ProjectDir)\..\..\Level2UpperSubFolder
...