Файл преобразования исходного кода NuGet (C #) не устанавливается в потребляющем приложении - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть многоцелевой (.NET 471 + Standard2.0) пакет NuGet, который содержит класс, который будет использоваться несколькими приложениями. Я хотел бы преобразовать пространство имен с помощью токена $ RootNamespace $, чтобы экземпляр файла в приложении-потребителе использовал то же пространство имен, что и приложение-потребитель.

Я сделал то, что изложено здесь: https://docs.microsoft.com/en-us/nuget/create-packages/source-and-config-file-transformations

Однако преобразованный файл никогда не попадает в приложение-потребитель. Я включил фиктивный класс без применения преобразования, и он успешно устанавливается в приложение-потребитель.

Исходный код:

TransformationTester.cs.pp

namespace $RootNamespace$
{
    public static class TransformationTester
    {
        public static string foo = "bar";
    }
}

TesterNoTransformation.cs

namespace abc
{
    public static class TesterNoTransformation
    {
        public static string foo = "bar";
    }
}

Project.csproj

<ItemGroup>
    <None Remove="TransformationTester.cs.pp" />
</ItemGroup>

<ItemGroup>
    <Content Include="TransformationTester.cs.pp" />
    <Content Include="TesterNoTransformation.cs" />
</ItemGroup>

Опубликован пакет NuGet (только соответствующие файлы)

-content
    -TesterNoTransformation.cs
    -TransformationTester.cs.pp
-contentFiles
    -any
        -net471
            -TesterNoTransformation.cs
            -TransformationTester.cs.pp
        -netstandard2.0
            -TesterNoTransformation.cs
            -TransformationTester.cs.pp
-Project.nuspec

В Project.nuspec

<contentFiles>
  <files include="any/net471/TransformationTester.cs.pp" buildAction="Content" />
  <files include="any/netstandard2.0/TransformationTester.cs.pp" buildAction="Content" />
  <files include="any/net471/TesterNoTransformation.cs" buildAction="Content" />
  <files include="any/netstandard2.0/TesterNoTransformation.cs" buildAction="Content" />
</contentFiles>

После установки пакета TesterNoTransformation.cs запускается в потребляющем приложении, а TransformationTester.cs - нет.

Есть мысли? Я боролся с этим сегодня.

...