2017-09-02 8 views
1

"旧"の世界では、Windowsエクスプローラのファイルpropetiesに "製品名"と "法的商標"として表示されるAssemblyProductAttributeAssemblyTrademarkAttributeを定義します。新しいcsprojビルドシステムを使用してcsprojでAssemblyProductを定義する方法

Visual Studio 2017でnetstandardプロジェクトで使用される新しい簡略化されたmsbuildシステムでは、これらのアセンブリレベルのすべての属性in the csproj directlyを定義し、msbuildに実際の属性を生成させることをお勧めします。

しかし、csprojには「製品名」と「法的商標」を定義する方法がないようです。それとも? This msbuild targetは、AssemblyProductAttributeのために作業が必要であると思われるようです。

どのように2つのものを追加できますか?

Udapte:右csprojファイルに<Product>Foo</Product>を書き込むことができますでAssemblyProductAttributeため オクラホマので。しかし、AssemblyTrademarkAttributeはどうですか?あなたがアセンブリのための項目を追加することができます

+0

IDEにプロパティページを追加しただけでは、それが優先されるわけではありません。特に私が想像している古いプロジェクトを移植するプログラマにとっては、そうではありません。コード内の属性を持つ古いスタイルを使用すると、[assembly:AssemblyTrademark( "foobar")]をどこにでも配置できます。 –

+0

コードで属性を定義し、そのプロパティページを使用すると、重複した属性のコンパイルエラーが発生するため、この方法が推奨されています。以前のバージョンのVSでは、これはコード内の属性(AssemblyInfo.cs)を変更しましたが、もはや変更されませんでした。 – bitbonk

+0

新しいcsファイルを作成してアセンブリ属性を置くことができますので、実際には関係ありません。プロパティを使用し、インポートされた単一のmsbuildファイルを定義してすべてのプロジェクトなどの値を設定できるので(たとえ混合f#+ c#ソリューションを通過する場合でも)、msbuild-integratedバージョンはより優れています。 –

答えて

2

はすでにこれらのターゲットから放出されたされていない属性:

<ItemGroup> 
    <AssemblyAttribute Include="System.Reflection.AssemblyTrademarkAttribute"> 
    <_Parameter1>My Trademark</_Parameter1> 
    </AssemblyAttribute> 
</ItemGroup> 

の例では、InternalsVisibleTo属性を生成するために使用することができる方法についてhereを見ることができます。

関連する問題