私は VS2010 を使用しており、ファイル参照を使用して、ローカル ハードディスクから C# プロジェクトにいくつかのアセンブリを追加しようとしました。ファイルをのぞいてみるcsproj
と、ファイル参照が次のように表示されることがあります
<Reference Include="name">
ただし、次のように表示されることもあります
<Reference Include="name, Version=xxx, Culture=neutral,
processorArchitecture=MSIL">
違いの原因は何ですか?
k3b の回答に触発されて、別のテストを行いました。新しいクラス ライブラリ プロジェクトを作成しました。
ファイル参照を追加します。プロパティペインの[特定のバージョン]の初期値はFalseです。ファイルは次のようになります
csproj
<Reference Include="Name"> <HintPath>...</HintPath> </Reference>
プロパティペインの特定のバージョンをTrueに変更します。VS は属性にバージョンを追加します。
Include
<Reference Include="Name, Version=..."> <HintPath>...</HintPath> </Reference>
プロパティペインの特定のバージョンを再度Falseに変更します。VS は子要素を追加します。
SpecificVersion
<Reference Include="Name, Version=..."> <HintPath>...</HintPath> <SpecificVersion>False</SpecificVersion> </Reference>
したがって、ルールは次のようです。
- バージョンがInclude属性に存在し、子要素がない場合
SpecificVersion
、ファイル アセンブリは特定のバージョンとして構成されます。 - 子要素には
SpecificVersion
値Falseのみが追加されます。
私がまだ理解していないことが1つあります:
- 私の新しいテスト プロジェクトでは、ファイル参照を削除して再度追加すると、既定のポイント 1 の形式に戻ります。
- 私の既存のプロジェクトでは、ファイル参照を削除して再度追加すると、ポイント 3 の形式に戻ります。特定のバージョンが使用されていないことも意味しますが、なぜポイント 1 の形式に戻らないのか疑問に思っています。 .