Saya ingin memperluas topik ini / jawaban dengan yang berikut ini. Seperti yang disebutkan seseorang, AssemblyInfo yang dibuat secara otomatis ini dapat menjadi penghambat bagi alat eksternal. Dalam kasus saya, menggunakan FinalBuilder , saya punya masalah bahwa AssemblyInfo tidak diperbarui dengan membangun tindakan. Rupanya, FinalBuilder bergantung pada ~proj
file untuk menemukan lokasi AssemblyInfo . Saya pikir, itu mencari di mana saja di bawah folder proyek. Tidak. Jadi, ubah ini
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
hanya melakukan setengah pekerjaan, itu memungkinkan info perakitan khusus jika dibangun oleh VS IDE / MS Build. Tapi saya perlu FinalBuilder melakukannya juga tanpa manipulasi manual untuk file info perakitan. Saya harus memenuhi semua program, MSBuild / VS dan FinalBuilder.
Saya memecahkan ini dengan menambahkan entri ke yang sudah ada ItemGroup
<ItemGroup>
<Compile Remove="Common\**" />
<Content Remove="Common\**" />
<EmbeddedResource Remove="Common\**" />
<None Remove="Common\**" />
<!-- new added item -->
<None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Sekarang, setelah memiliki item ini, FinalBuilder menemukan lokasi AssemblyInfo dan memodifikasi file. Sementara tindakan None
memungkinkan MSBuild / DevEnv mengabaikan entri ini dan tidak lagi melaporkan kesalahan berdasarkan Compile
tindakan yang biasanya disertai dengan entri Info Perakitan dalam proj
file.
C: \ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets (263,5): kesalahan: Duplikat item 'Kompilasi' dimasukkan. .NET SDK menyertakan item 'Kompilasi' dari direktori proyek Anda secara default. Anda dapat menghapus item-item ini dari file proyek Anda, atau mengatur properti 'EnableDefaultCompileItems' menjadi 'false' jika Anda ingin secara eksplisit memasukkannya dalam file proyek Anda. Untuk informasi lebih lanjut, lihat https://aka.ms/sdkimplicititems . Item duplikat adalah: 'AssemblyInfo.cs'