Вопрос

Я пытаюсь создать / толкать пакет Nuget через процесс сборки Visual Studio, как объяснено здесь .

Строительный пакет легко:

<Exec WorkingDirectory="$(ProjectDir)" Command="$(NuGetApp) pack $(ProjectFile) -OutputDirectory $(Deploy) -Verbose -Prop Configuration=Release"/>
.

Я вижу .nupkg файл в папке $ (развертывание).

Но уметь нажать на него, мне нужно $ (Assockerversion), чтобы использовать его в:

<Exec Command="$(NuGetApp) push $(ProjectName)$(AssemblyVersion) -s $(NugetServer) $(NugetKey)" />
.

Я попробовал xmlread, чтобы получить значение, но значение в nugetspecfile - это «$ версию $» вместо версии от AssemblyInfo.c.

<XmlRead XPath="/package/metadata/version" XmlFileName="$(NuSpecFile)">
      <Output TaskParameter="Value" PropertyName="AssemblyVersion" />
    </XmlRead>
.

Как я могу получить доступ к версии, чтобы я мог использовать его в "Nuget push"?

Это было полезно?

Решение

Это сделаю это:

<PropertyGroup>
    <MyAssemblies>somedll\the.dll</MyAssemblies>
  </PropertyGroup>

 <Target Name="RetrieveIdentities">
    <GetAssemblyIdentity
        AssemblyFiles="$(MyAssemblies)">
      <Output
          TaskParameter="Assemblies"
          ItemName="MyAssemblyIdentities"/>
    </GetAssemblyIdentity>

    <Message Text="Files: %(MyAssemblyIdentities.Version)"/>
  </Target>
.

изменено отсюда: Задача MSBuild для чтения версии DLL

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top