VS2010を使用していますが、ローカルハードディスクからいくつかのアセンブリをファイル参照を通じてC#プロジェクトに追加しようとしました。 csproj
ファイル覗く、私が見つけたは時々ファイル参照は、しかし、時には違いを引き起こす可能性がありますどのようなcsprojアセンブリリファレンスの理解
<Reference Include="name, Version=xxx, Culture=neutral,
processorArchitecture=MSIL">
として表示されます
<Reference Include="name">
として表示されますか?
k3bの回答からインスパイアされ、別のテストを行いました。私は新しいクラスライブラリプロジェクトを作成しました。
ファイル参照を追加します。 初期値プロパティペインは偽です。 プロパティ真からペインで
<Reference Include="Name"> <HintPath>...</HintPath> </Reference>
変更特定のバージョンよう
csproj
ファイルの外観。 VSはInclude
属性のバージョンを追加します。<Reference Include="Name, Version=..."> <HintPath>...</HintPath> </Reference>
変更特定のバージョンでプロパティを再度偽からペイン。 VSは子要素
SpecificVersion
を追加します。<Reference Include="Name, Version=..."> <HintPath>...</HintPath> <SpecificVersion>False</SpecificVersion> </Reference>
だから、ルールがあるようです:
- バージョンが中に存在する場合属性を含めると何
SpecificVersion
子要素が存在しない、ファイルアセンブリはなるように構成されています特定のバージョン SpecificVersion
子要素には値が追加されます。False。
一つのこと、私はまだ理解していない:
- を私の新しいテストプロジェクトのために、私は、ファイルの参照を削除し、再度それを追加した場合、それがある、ポイント1の形式に戻りデフォルト。
- ファイル参照を削除して再度追加すると、ポイント3に戻ります。特定のバージョンが使用されていないことを意味しますが、なぜフォーマットに戻っていないのだろうと思います
本当ですか?私のVS2010では、 'SpecificVersion'は要素' Reference'の子です。 Isは ' '他には影響を与えません。それ以外の属性は無視されます。 –
私はテストをしました。具体的なバージョンは最初はFalseです。私は手動でバージョン情報を削除するためにcsprojファイルを編集しました。それから、Specific VersionをTrueに変更しました。私は、VSがバージョン情報を挿入したことを確認しました。だから、特定のバージョンと何とか関係しているようです。しかし、私はVSがなぜ私の最後の変更を覚えていないのか不思議です。特定のバージョンをFalseにリセットし、アセンブリ参照を削除してreaddしても、バージョン情報は挿入されます。 – intangible02
あなたの所見を確認します。それに応じて答えを更新しました。 – k3b