問題タブ [assemblyinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2008 - 「LNK2022: メタデータの操作に失敗しました」というメッセージに頭がおかしくなりました
VS2008 SP1 を使用して、多くのプロジェクトで大きなソリューションを持っていますが、少なくとも 1 日に 1 回は LNK2022 エラーが発生します。ソリューションを完全に再構築すると問題なくビルドできますが、これは面白くありません。
これは、依存する DLL が「わずかに」(つまり、メソッドやクラスを変更せずに) 変更され、参照元のプロジェクトが後でビルドされた場合に発生します。メタデータをマージするときに失敗します-それが何を意味するにせよ。
最初に注意すべきことは、共有 DLL が#using
複数の .CPP ファイルから参照されていることです。
2 つ目は、AssemblyInfo.cpp を共有 DLL から削除すると、問題が解決することです (ただし、これが賢明な修正であるかどうかはわかりません)。
2 つの CLR クラス ライブラリ プロジェクトを含む次のソリューションに可能な限り絞り込みました( xxxプロジェクトはSharedに依存します)。
各ファイルの内容は次のとおりです。
共有.cpp:
インチ:
xxx.cpp および xxx2.cpp:
再現するには、まずソリューションを再構築します。それは問題なくビルドされます。Shared.cpp
を
保存してソリューションをビルドすると、正常にビルドされ、次のように表示されます。
xxx.cppを保存してソリューションをビルドすると、次のメッセージが表示されて失敗します。
編集:
xxx.obj と xxx2.obj の IL の違いは次のとおりです。
(xxx.obj の場合)
// AssemblyRef #2 (23000002)
// ---------------------------------- ---------------------
// トークン: 0x23000002
// 公開鍵またはトークン:
// 名前: 共有
// バージョン: 1.0.3412.16 606
// メジャー バージョン.
_
_
_ _
_
_ _
// フラグ: [なし] (00000000)
(xxx2.obj の場合)
// AssemblyRef #2 (23000002)
// ---------------------------------- ---------------------
// トークン: 0x23000002
// 公開鍵またはトークン:
// 名前: 共有
// バージョン: 1.0.3412.16 585
// メジャー バージョン.
_
_
_ _
_
_ _
// フラグ: [なし] (00000000)
これは、xxx2.obj がまだ古いバージョンの Shared.dll を使用しており、更新された Shared.dll を使用している xxx.obj と競合していることを意味します。では、どうすればそれを回避できますか?
svn - AssemblyInfo.cs をバージョン管理に配置する必要がありますか?
CruiseControl を使用した自動ビルド システムがあります。使用するバージョン文字列を取得するために SvnRevisionLabeller を使用しています。この文字列を使用すると、nant を使用して AssemblyInfo.cs を更新できるため、ビルド時に正しいビルド文字列が含まれます。この CC ラベルを使用して、Subversion リポジトリにタグを付けることもできます。
すべてが揃っているので、
CCNet ビルド ラベル
- 実行可能ファイル (アセンブリ情報)
- バージョン管理 (サブバージョン タグ)
ここで問題が発生するのは、リポジトリから古いイメージを再構築しようとする場合です。AssemblyInfo.cs はバージョン管理下ではなく、生成されたファイルであるため、ビルドしようとすると、バージョン管理情報は、このバージョンのリポジトリが CruiseControl を使用してビルドされたときと同じにはなりません。CC ビルド中にビルドされたか、後日 Subversion からチェックアウトしたときにビルドされたかに関係なく、まったく同じイメージを生成できるようにしたいと考えています。
多くの場合、推奨されないことはわかっていますが、svn チェックアウトから後でビルドするときに正しいバージョン情報が使用されるように、ビルドごとに assemblyInfo.cs ファイルをチェックインする必要がありますか?
ありがとう、リアム
assemblyinfo - ビルド中に新しいビルドとリビジョンでassmeblyバージョン情報を更新するにはどうすればよいですか?
assemblyinfo.csファイルのアセンブリバージョンのビルド番号を更新する必要があります。ビルドを開始する前に、ソリューションの下ですべてのassmeblyinfo.csを更新するカスタムタスクを作成しました。しかし、このファイルを変更してビルドしようとすると、特定のバージョンのアセンブリが見つからないため、他のdllの参照を持ついくつかのdllをコンパイルできません。厳密な名前のアセンブリを使用するファイルもいくつかあります。バージョンを更新する方法がわからない。特定のバージョンをfalseに設定しようとしましたが、それでも同じエラーが発生します。
増分ビルド番号でassemblyinfo.csを更新する良い方法を教えてもらえますか?
PS私はビルドによる自動化にNANTタスクを使用しています。
c# - ThemeInfo 属性は何のためのものですか?
新しい WPF アプリケーションまたは WPF ユーザー コントロール ライブラリを作成するたびに、AssemblyInfo.cs
ファイルには次の属性が含まれます。
このThemeInfo
属性の目的は何ですか? 外すと何か壊れますか?
c++ - Win32 DLLプロジェクトに「AssemblyInfo.cs」に相当するものはありますか?
私はすでにこのトピックを見ましたが、答えを裏返す必要があります。Win32 DLLでアセンブリ情報属性*を設定するにはどうすればよいですか?
c# - C# プロジェクトのバージョン形式を変更することはできますか?
major.minor.build.revision 形式の代わりに、バージョン番号に日付と時刻を使用したいと思います。日.月.年.時間のようなもの。AssemblyInfo.cs の AssemblyVersion 属性の形式を変更する方法はありますか?
c# - ラッパークラスを独自のクラスプロジェクトに移動したため、Log4Net.configが読み込まれていません。
誰か助けてもらえますか、私は成功してlog4netを使用していますが、基本的にWebプロジェクトに静的クラス(ラッパー)があり、これをassemblyinfo.csに追加してlog4net.configという外部ファイルから構成をロードします
これで、静的クラスを独自のクラスプロジェクトに移動して、静的クラス(ラッパー)を他のプロジェクトと共有できるようにすることにしました。
log4net.configはまだwebprojectにありますが、もちろん現在はロードされていません。静的クラス(現在は独自のプロジェクト)で実行しているため、これを知ることができます。
IsInfoEnabledはfalseを返し、何もログに記録されておらず、.configファイルは読み取られていません...
Log4netラッパー(静的クラス)は独自のクラスプロジェクトにありますが、.configファイルはWebプロジェクトihaveにあります。.configはプロジェクトごとに変更できますが、通常はラッパーは変更されないため、このように必要です。 。
もちろん、抽象クラスを作成し、Webプロジェクトで継承し、必要に応じて何かをオーバーライドすると思いました...しかし、もちろん、静的クラスを継承したり、抽象を作成したりすることはできません。
他の誰かがこれに出くわしたと確信しています、何かアイデアはありますか?..本当に感謝している助け
visual-studio - 1 つのソリューションで複数のプロジェクトの VS.net セット バージョン
ソリューション内のさまざまなプロジェクトを更新して、新しいバージョン番号を取得しようとしています。すべてのプロジェクトの fileversion と clickonce オプションでバージョン番号を同期する簡単な方法はありますか?
答え
最後に、小さなツールを作成して問題を解決しました。
c# - .csproj 内から solutioninfo.cs および assemblyinfo.cs にアクセスする
.csproj ファイル内の solutioninfo.cs と assemblyinfo.cs からいくつかの情報にアクセスし、それをプロパティとして使用する必要があります。
の値を使用します
私のcsprojで:
値にアクセスする方法はありますか?
asp.net - ASP.NET Web サイトでバージョン番号を指定する場所
したがって、AssemblyInfo.cs ファイルや Bin フォルダーなどを持たない ASP.NET 'Web サイト' (Web アプリケーションではなく) があります。
アセンブリのバージョン番号 (7.0.2.0 など) を指定する方法が必要です。Web アプリケーションでは、AssemblyInfo.cs ファイルでこれを行います。
AssemblyInfo.cs ファイルを含む Properties フォルダーを追加しようとしましたが、それが取得されているとは思いません - Assembly.GetExecutingAssembly().GetName().Version.ToString() を呼び出すと 0.0.0.0 が取得されるため
では、AssemblyInfo.cs を機能させるにはどうすればよいですか、またはバージョン番号を指定するにはどうすればよいですか?