Chcę rozszerzyć ten temat / odpowiedzi na następujące. Jak ktoś wspomniał, to automatycznie wygenerowane AssemblyInfo może stanowić przeszkodę dla zewnętrznych narzędzi. W moim przypadku przy użyciu FinalBuilder miałem problem, że AssemblyInfo nie był aktualizowany przez akcję kompilacji. Najwyraźniej FinalBuilder polega na ~proj
pliku, aby znaleźć lokalizację AssemblyInfo . Myślałem, że szukał gdziekolwiek w folderze projektu. Nie. Więc to zmieniam
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
wykonał tylko połowę pracy, pozwalał na niestandardowe informacje o montażu, jeśli został zbudowany przez VS IDE / MS Build. Ale potrzebowałem też FinalBuilder, aby to zrobić bez ręcznych manipulacji plikiem informacji o złożeniu. Musiałem zadowolić wszystkie programy, MSBuild / VS i FinalBuilder.
Rozwiązałem to, dodając wpis do istniejącego ItemGroup
<ItemGroup>
<Compile Remove="Common\**" />
<Content Remove="Common\**" />
<EmbeddedResource Remove="Common\**" />
<None Remove="Common\**" />
<!-- new added item -->
<None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Teraz, mając ten element, FinalBuilder znajduje lokalizację AssemblyInfo i modyfikuje plik. Chociaż akcja None
pozwala MSBuild / DevEnv zignorować ten wpis i nie będzie już zgłaszać błędu na podstawie Compile
akcji, która zwykle pochodzi z pozycji Informacje o złożeniu w proj
plikach.
C: \ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets (263,5): błąd: uwzględniono zduplikowane elementy „Kompiluj”. Zestaw .NET SDK domyślnie zawiera elementy „Kompiluj” z katalogu projektu. Możesz usunąć te elementy z pliku projektu lub ustawić właściwość „EnableDefaultCompileItems” na „false”, jeśli chcesz jawnie dołączyć je do pliku projektu. Aby uzyskać więcej informacji, zobacz https://aka.ms/sdkimplicititems . Zduplikowane elementy to: „AssemblyInfo.cs”