このトピック/回答を次のように拡張したいと思います。誰かが述べたように、この自動生成AssemblyInfoは、外部ツールの障害になることがあります。私の場合、FinalBuilderを使用して、AssemblyInfoがビルドアクションによって更新されていないという問題がありました。明らかに、FinalBuilderはファイルに依存し、AssemblyInfoの場所を見つけます。私は、プロジェクトフォルダのどこでも探していたと思っていました。いいえ、これを変更すると、VS IDE/MSビルドによってビルドされた場合、カスタムアセンブリ情報が許可されます。
しかし、私はが必要でした。FinalBuilderも、アセンブリ情報ファイルを手動で操作する必要はありません。私はすべてのプログラム、MSBuild/VS、FinalBuilderを満たす必要がありました。
私はこのアイテムを有し、既存のItemGroup
今
<ItemGroup>
<Compile Remove="Common\**" />
<Content Remove="Common\**" />
<EmbeddedResource Remove="Common\**" />
<None Remove="Common\**" />
<!-- new added item -->
<None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
にエントリを追加することによって、これを解決し、FinalBuilderは AssemblyInfo の位置を検出し、ファイルを修正します。 None
のアクションはMSBuild/DevEnvがこのエントリを無視することを許可しますが、通常Compile
アクションに基づくエラーを報告しません。これは通常、proj
ファイルにアセンブリ情報エントリが含まれています。
C:\プログラムファイル\ DOTNET \ SDK \ 2.0.2 \ SDKの\ Microsoft.NET.Sdk \ \ Microsoft.NET.Sdk.DefaultItems.targetsを構築(263,5): エラー:重複 " 「コンパイル」項目が含まれていました。 .NET SDKには、デフォルトでプロジェクトディレクトリの「コンパイル」項目が含まれています。 これらのアイテムをプロジェクトファイルから削除するか、プロジェクトファイルに明示的に含める場合は、 'EnableDefaultCompileItems'プロパティを 'false'に設定することができます。 詳細については、https://aka.ms/sdkimplicititemsを参照してください。重複した項目は次のとおりでした: 'AssemblyInfo.cs'
私はこの事をオフにすることができることを喜んで参照してください。私は昔ながらのものと呼んでいますが、私は良い古いAssemblyInfo.csファイルを.netcoreの自動生成されたものよりも好きです。私は外部ツールを使用して、バージョンと他のAssembyInfoエントリの内容を管理します。私は、プロジェクト自体からプロパティを保持するためにカスタムターゲットを使用しようとしましたが、それは私をしばらく窒息させました。 –
同じです。新しいcsprojベースのシステムでは、従来のツールを使用できませんでした。このプロパティで、私は今戻って、私は愛する! – Structed
あなたがバージョンをアセンブリ属性として定義すると、何とかバージョンがnugetパッケージジェネレータによって選択されません。回避策はありますか? – theDmi