問題タブ [versioning]
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.
c# - VS2005:日付でビルド番号を自動的に生成する方法は?
Visual Studio 2005 に .net 2.0 C# アプリケーションがあり、アプリケーションのビルド日を推測できる番号を含む正しいバージョンのビルド番号を自動的に生成したいと考えています。Microsoftの「AssemblyInfo Task」
ツール
を使用しようとしましたが、デフォルトではこのツールは機能しません。今日では、最大の 65535 を超えるビルド番号「090227」が生成されるため、エラーが発生します。
2009 年 1 月 1 日の 09001 のように、年と日を含むビルド番号を使用することもできます...
この問題の解決策を知っていますか?
この 'AssemblyInfo Task' のソース コードを更新する必要がありますか、または VS2008 などでこれを達成することは可能でしょうか?
ご協力いただきありがとうございます。
versioning - 分散アーキテクチャでバージョン管理が難しいのはなぜですか?
何度も何度も見ます。UAT テスト マネージャーは、金曜日までに新しいビルドをテストする準備ができていることを望んでいます。テスト前の会議で最初に尋ねられる質問の 1 つは、「どのバージョンに対してテストするか」です。(これは尋ねるのが公正な質問です)。部屋が静かになり、誰かが戻ってきて、「すべてのアセンブリには独自のバージョンがあります。右クリックしてプロパティを見てください...」.
テスト管理者の観点からすると、これは役に立ちません。彼らは、何に取り組んでいるかを伝えるすべてのバージョン/ラベル/タグを望んでいます。彼らは、この情報を簡単に入手できることを望んでいます。
システムのさまざまな領域のバージョンがデータストアに保存され、メイン アプリケーションの [about] ボックスに表示されるソリューションを見てきました。問題は、これを維持する必要があることです。
この進行中の問題を回避するために、どのような解決策を見たことがありますか?
編集。分散システムは、VB6、Classic ASP、VB.Net、C#、Web サービス (部門間で使用されているため、どのバージョンを使用していますか?)、SQL Server 2005 をカバーしています。
vb6 - コマンド ラインから EXE または DLL のバージョン番号を変更するにはどうすればよいですか?
version など、4 桁目が 9999 より大きいバージョン番号の古い VB6 アプリケーションをビルドする必要があります1.2.0.10003
。VB6 ではこれができません。ビルドは失敗します。
現在の回避策は、バージョンをビルドして1.2.0.9999
から、Visual Studio でファイルを手動で編集して正しいバージョンを挿入することです。もっと良い方法があるはずです。EXE または DLL のバージョン番号フィールドを変更できるコマンド ライン ツールはありますか? 特定のバージョン番号フィールドを個別に編集できる方法が望ましいです。
.net - VB.NET インターフェイス / レイト バインディングの並べ替え
シナリオを示してから、誰かが解決策/回避策を持っているかどうかを確認してください。
クラスのみを含むライブラリ (DLL) があります。別のライブラリには、最初のライブラリのクラスが実装するインターフェイスがあります。クライアントは常に、インターフェイスを含むライブラリの 1 つのバージョン (常に最新のもの) のみを参照し、それらのインターフェイス (より多くのインターフェイス/メソッド) への追加のみが行われます。また、そのインターフェイス ライブラリのバージョンは 1 つだけです - クライアントが参照を更新する必要がないように (インターフェイス ライブラリはリフレクションを介して読み込まれます - 通常のプローブ ルールは適用されません。に頼む)。インターフェイスを実装するライブラリには、異なるクライアントが同時に参照する複数のバージョンがあります。
この問題は、クライアント アセンブリが古いバージョンの実装ライブラリを参照している場合に発生します。実装ライブラリのクラス型からオブジェクトを作成し、それを別のクライアント アセンブリに渡します。そのクライアント アセンブリは、インターフェイス ライブラリの最新 (かつ唯一の) バージョンを使用し、渡されたオブジェクトを適切なインターフェイス型でキャストしようとします。このキャストは、「System.TypeLoadException: アセンブリ Z の Y 型のメソッド X には実装がありません」という例外で失敗します。インターフェイスの新しいバージョン (同じバージョン番号 - 古いライブラリが破壊された) ではメソッド X が定義されているため、この例外が予想されましたが、渡されたオブジェクトの古いバージョンには、対応するインターフェイスを実装することを示すメタデータが含まれています。
それで、私の質問はこれです。クライアントにそのインターフェイスを使用させる方法はありますが、参照されたオブジェクトに実装されていないメソッドが呼び出されたときにのみ例外が発生します(参照されたオブジェクトが新しいインターフェイス型にキャストされたときに例外が生成されるのではなく)?
ちなみに、インテリセンス/コンパイル時の型チェックが必要なため、遅延バインディングはオプションではありません...また、関数ポインターとラッパークラスでこれを行う方法を知っています-より良い解決策を望んでいました通常の .NET タイプで調整します。
ありがとう - どんな助けでも大歓迎です
versioning - バージョン番号の決定
複製
こんにちは、
そこで最近、Groovyがバージョン1.6にリリースされたことを知り、Java Posse Podcast を聞いているときに、このリリースには2.0リリースであるべきだった多くの機能が詰め込まれているとコメントしていました。
それは私に考えさせました。バージョン番号は任意ですか? 意味があると思っていたのですが、そうではないようです。すべてマイルストーンベースで、プロジェクトごとに設定されているだけですか?
チームはバージョン番号とリリースをどのように管理していますか?
前もって感謝します
versioning - バージョン番号付けに関するアドバイスはありますか?
当社の製品には長い歴史があります (約 12 年)。
その起源は VB3 (バージョン 1) とそれ以降の VB6 (バージョン 2) にあります。(バージョン番号は「犬の朝食」であり、バージョン管理は悪夢でした。
私はここ数年ここに関わっています。バージョン 3 は .Net プラットフォームで開発中ですが、バージョン 2 は定期的なリリース (年間約 3 ~ 4) で引き続きサポートされています。
開始時にナイトリー自動ビルドを導入し、製品のバージョン番号は 2.2.2 でした。誰もが 2.2.3 をリリースする予定でしたが、自動化されたビルド プロセスと VB6 の「興味深い」3 つのパーツ番号システムにより、3 番目の部分であるビルド/リビジョン番号を使用する必要がありました。
そのため、バージョン 2.3 (ビルド番号は「なんでも」) をリリースし、2.4 (ビルド番号は毎晩インクリメント)、2.5、2.6 などの作業に取り掛かりました。
ビルド番号は公開されていませんが、バージョンの複数のビルドをリリースすることはめったにありませんが、サポート目的で利用できます。ただし、時々パッチを適用する必要があります.
一貫性が保証されます。これで 2.9 になりました。2.10 (2.10 から 2.10 まで) に移行しようとしています。残念ながら、非技術者はこれを有理数 (2 - ポイント 1) のように読んでいます。彼らは、私たちがバージョン 3.0 に移行しない理由を理解できません。(ビルド番号は、サポート目的で「ヘルプ/バージョン情報」画面にのみ表示されます)。
製品 (メジャー番号) のアップグレードは、特にこれが市場に設定する期待のために保証されているとは思いません.
ここで進む正しい方法はありますか?(2.10 か 3.0 か、それよりも優れたものか、それとも問題なのでしょうか?)
(注: バージョン番号が 2.9 ではなく 2.09 として表示されるように、(当社の Web サイト、製品のスプラッシュ画面、その他のさまざまな公共の場所などで) ある程度の努力をしました。そのため、2.10 に移行したときに、より理にかなっていますが、2.09 は実際には 2.8 よりも低い有理数であるため、これは潜在的に混乱を招く可能性があります...)
関連項目:
winapi - Win32 VERSIONINFO リソースの URL?
当社のマネージャーの 1 人が、EXE/DLL ファイル (VERSIONINFO リソース内) の CompanyName に当社の URL (「OurCompany - http://www.ourcompany.com」など) を含めることを決定しました。
意図しない結果につながる可能性があるため、これは悪い考えだと思います。フィールドが CompanyNameAndUrl を呼び出しておらず、当社の会社名が URL ではないため、これは私の審美眼にも害を及ぼします。
私は正しいですか?どうすれば彼が間違っていると説得できますか? Windows のバージョン情報に URL を表示するには、どこに URL を配置すればよいですか?
私が間違っている?
更新: バイナリはデジタル署名されているため、そこに URL が表示されます。
.net - AssemblyInfo 属性は Win32 VERSIONINFO にどのようにマップされますか?
VERSIONINFO リソースを含むバイナリ ファイルのプロパティを表示すると、Windows はその情報を表示する [バージョン] タブを追加します。
どの .NET アセンブリ属性がどの VERSIONINFO フィールドにマップされているかのリストがあるので、.NET アセンブリに対してこれらを簡単に制御できますか?
django - ライブ Web サイトを安全に更新する方法
CRUD 操作を行うためのかなり単純な Django ベースの Web サイトがあります。私はローカルでテストと開発を行っており、テストが完了したら、リリースとデータベース スキーマの変更をライブ サーバーにチェックアウトしています。最近、いくつかの種類の変更をリリースする際に問題が発生しました。次の一連のイベントを想像してください。
- ユーザーが Web フォームを開く
- サイトが更新され、このフォームに新しいフィールドが必要になりました
- ユーザーが作業中のフォームを送信する
- 手順 2 で追加された新しいフィールドを受信することを期待しているため、サーバーはエラーを返します。
他のサイトはこの種の問題にどのように対処していますか? 私のアイデア:
- 更新が行われている間、サイトをオフラインにします。これは実際には問題の解決にはなりません。ユーザーは Web フォームを送信する前に無限に開いたままにしておくことができますが、一定の時間が経過すると、誰もフォームを送信する可能性が低くなるからです。
- トラフィックが非常に少ない時間帯に自動更新を行います。これでも問題は解決しませんが、私たちのサイトはそれほど人気がなく、午前 3 時に更新を行った場合、多くのユーザーがいるとは思えません。この手法に関する懸念の 1 つは、失敗する自動更新です。
- サーバーが古いフォームが送信されていることを認識し、よりユーザーフレンドリーな応答を提供するように、フォームをバージョン管理します。これに役立つ自動化ツールはありますか?
考え?