VisualStudioでのバージョン更新方法

このQ&Aのポイント
  • VisualStudioでのバージョン更新方法について質問があります。
  • バージョンをまとめて変更する方法について教えてください。
  • ビルドエラーが発生しているので解決方法を教えてください。
回答を見る
  • ベストアンサー

VisualStudioでのバージョン更新方法

VisualStudio2013 でC#を使って開発を行っています。 プロジェクトのアセンブリバージョン、ファイルバージョンの書き換えについて質問させてください。 一つのソリューションの中にいくつかのプロジェクトがあり、 そのバージョンを一つ一つ変更するのが手間なのでバージョンだけを書いたプロジェクトを作り それを各プロジェクトから参照出来ないかと考えました。 VersionLibというプロジェクトを作成しその中に下記のものを作成しました。 /// <summary> /// ヴァージョン管理用クラス /// </summary> public class version { // ヴァージョン情報 public const string A_Lib_Ver = "0.1.0.0"; public const string B_Lib_Ver = "0.1.0.0"; public const string C_Lib_Ver = "0.1.0.0"; public const string TestPrj = "0.1.0.0"; public const string verson_Ver= "0.1.0.0"; } 各プロジェクトのAssemblyInfo.cs の中で [assembly: AssemblyVersion(version.A_Lib_Ver)] [assembly: AssemblyFileVersion(version.A_Lib_Ver)] のような形で記述しました。 ソリューションの構成は TestPrjというプロジェクトがA_Lib、B_Lib、C_Libという3つのプロジェクトを参照しています。 上記の1+3のプロジェクトはVersionLibプロジェクトを参照しています。 A_Lib、B_Lib、C_Lib及び、VersionLibプロジェクトのビルドは通るのですが、TestPrjのビルドが通らず 「エラー 16 ファイル "C:\\TestPrj\Version\bin\Debug\Version.dll" を "bin\Debug\Version.dll" にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'bin\Debug\Version.dll' にアクセスできません。」 と表示されエラーになってしまいます。 ビルドの順番を変えてみたりしましたが変化はありませんでした。 また一度VisualStudioを閉じて再度ソリューションを開くと添付の画像のエラーがでました。 この現象の解決方法がありましたら教えていただきたいです。 また、別の方法でバージョンをまとめて変更できる方法がありましたらそちらでも結構なので教えていただけたら嬉しいです。 宜しくお願い致します。

  • fenri
  • お礼率50% (11/22)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

共有する属性だけをソリューション直下のSharedAssemblyInfo.csに集めて, そのファイルをプロジェクトからリンクする形で取り込む,ということをやったことがあります。 1. [プロジェクト] - [既存項目の追加]と辿り,[既存項目の追加]ダイアログを開く 2. SharedAssemblyInfo.csを選択する 3. [開く]ボタンの右側の三角を押し,[リンクとして追加]を選択する という手順でリンクを追加できます。 SharedAssemblyInfo.csには,AssemblyInfo.csのコードのうち, AssemblyVersionやAssemblyCopyrightなどの属性を移動しておくことになると思います。

fenri
質問者

お礼

やりたかったことが実現できました。 ありがとうございます。

関連するQ&A

  • Visual StudioのF5一発で、変更があるプロジェクトのみビルドしなおしで、実行までの自動化方法についての質問

    質問内容についてまず、結論を書きます。2つあります。 いづれか一方だけの回答でもわかるのであれば、お願いします。 Q1 同一ソリューションファイルに、複数のexeとdllが存在する時に、 「ソリューションのビルド」(リビルドではないです)を実行または、F5キーを押して、実行の行為を おこなった時に、ソースに変更があったプロジェクトのみビルドしなおされるようにする方法を教えてください。 Q2 また、dllの参照設定に指定するdllは2つあるうちのどちらを設定すればよいかを教えてください。そして、その理由もできれば、お願いします。 ↑「2つあるうちのどちらを」はおそらく意味不明だと思いますので、以下の説明のなかで言及します。 <<以後補足説明>> A.exe、B.dll、C.dll、D.dll、E.exe から構成されるアプリケーションを開発中です。 ソリューションファイルのパスは、 C:\hoge\A\A.sln です Aプロジェクトのプロジェクトファイルは C:\hoge\A\A.vbproj プロジェクトファイルについては、A~Eまで同様で、 Aフォルダと、プロジェクトファイル名が、各自のアルファベットにかわっただけです。 2箇所にdllが出力されます。 ア) C:\hoge\B\bin イ) C:\hoge\B\obj\Debug A~Eもアルファベットが異なる、exeとdllが異なる以外は同様です。 Q2の「2箇所」はこれのことです。 Q1ですが、Bプロジェクトのあるソースを修正してF5で実行しても、 B内での変更内容が実行に反映されなかった。 参照設定が原因か?と、(ア)→(イ)に変更しても、結果は同じ。 ソリューションのリビルドまたは、 Bプロジェクト単独でビルドした後にF5キーを押すと、反映されますが・・ そこで、Q1の質問ですが、F5キー一発で、ソリューションのなかで、変更があったソースのプロジェクトのみビルドして、 実行するまでを一発で、やる設定方法はないでしょうか?

  • visualstudioでc#のdllができない

    visualstudio2010を使用しています。 dllの作成をしたいのですが、なぜか作られません。 どこに手順を書きますのでどこに間違いがあるか教えてください。 (1)作成したプロジェクトを開く (2)ファイルー新しいプロジェクトを選択 (3)クラスライブラリを選択 (4)ソリューション(S):ソリューションに追加を選択ーOKボタン (5)DLLの中を書く (6)参照設定を選択する (7)ソリューションのプロパティのビルドでフォルダを指定する。 (8)ビルドする(もちろん通る) しかし、DLLはどこにも見当たらない。 検索しても、クラスライブラリを選択すれば自動的にできると書いてあるので、困り果てています 機能はMEFを使用し、僕ではない人が作ったDLLがすでに追加されており、僕もDLLを追加したいのですが、なぜかDLLが作成されません。 詳しいかたよろしくおねがいします。

  • VisualStudio2005

    .NETのアセンブリって C:\windows\assembly\ のところを開くと、あると思うのですが、そこをエクスプローラーで開くと表示されているけど、VBならImports、C#ならusingでnamespaceを指定できないのですが、私の考えが間違っているのでしょうか? C:\windows\assembly\ のところがGACで、あそこにいろいろなバージョンのファイルがおけるて、あそこにあれば、Importsなりusingで指定できると思っていたのですが違うのでしょうか? プロジェクトの参照の追加で指定しようとしても、上記のところのは指定できず、ほかのフォルダにあるファイルでないと指定できないのです。 お分かりになる方よろしくお願いします。

  • .dll .lib を作成するホルダーの指定法は?

    .NETで同一ソリューションの中に、C#でメインプログラム、C++でDLLプログラムを作りました メインの .exeは Projects ⇒ MySolution ⇒ MyMainProject ⇒ bin ⇒ Debug ⇒ Main.exe のように出来ます 一方DLLは Projects ⇒ MyDLLProject ⇒ MyDLL.cppとなり、 これをビルドすると .dll .lib が MyDLLProject と同レベル位置にあるDebugホルダーの中に出来上がります メインはDLLを『暗黙の呼出し指定』で呼んでおりますので、Main.exeと同じホルダー入れたいのです 現在は毎回 .dll .lib をコピーした後に、改めてMain.exeを実行していますが、操作が煩雑でミスが多発して困っております もしDLLの.dll .lib をビルドの段階で Main.exe と同じホルダーに作ることが出来れば操作ミスは無くなります 何らかの方法があると思い色々調べましたが分かりません もしご指導頂ければ幸いです

  • VC++6.0ビルド後の処理で黙り込み

    VC++6.0でDLLを作ったのですが、 プロジェクトの設定でビルド後の処理に copy debug\dll.dll c:\usedll\debug\dll.dll のようにしてリビルドたところ ----------------------------------------------- ................. コードを生成中... リンク中... ライブラリ Debug/MfcDll.lib とオブジェクト Debug/MfcDll.exp を作成中 ビルド後の処理 ----------------------------------------------- ここでビルドが固まってしまいます。 ビルドの中止を押しても復帰せず、VC++を閉じようとしてもビルド中はダメとおこられます。 Ctrl+Cでもダメです。 何度やっても再起動しても確実に止まります。 copy じゃなくてdirとかでも止まります。 ビルド後の処理を外せばちゃんとビルドできます。 なにか心当たりのある方いらっしゃいましたらアドバイスお願いいたします。

  • DLLを出力する位置の指定方法は?

    Visual Studio 2010 を使用して簡単なシステムを作っております ソリューションはMySystemと名付けました メインプログラムはC#で開発しており、MySystem_MAINといいます そのほかにDLLもありC++で開発しており、MySystem_DLLといいます MAINは『暗黙の指定』でDLLを呼びます 従ってDLLの出力はMAINと同じ位置にしようと思い、次のように指定しました (1) DLLのプロパティ ⇒ 構成プロパティ ⇒ 全般 ⇒ 出力ディレクトリに以下のように指定しました G:\Projects\MySystem\MySystem_MAIN\bin\Debug\ (2) DLLのプロパティ ⇒ 構成プロパティ ⇒ リンカー ⇒ 出力ファイルに以下のように指定しました G:\Projects\MySystem\MySystem_MAIN\bin\Debug そこでソリューションのリビルトを実行すると以下のWarningが出ます TargetPath(G:\Projects\MySystem\MySystem_MAIN\bin\Debug\MySystem_DLL.dll) が Linker の OutputFile プロパティ値 (G:\Projects\MySystem\MySystem_MAIN\bin\Debug) と一致しません。このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。 そして結局リビルトは失敗に終わります DLLはMAINのところには出来ず、G:\Projects\MySystem\MySystem_DLL\bin\Debugのところに出来ています 失敗の原因はここにあると思います どのようにすればMAINと同じ位置にDLLを出力できるでしょうか? 色々調べましたが分かりません、是非ご指導願います

  • VisualStudio2005

    お世話になります。 例えば、同一ソリューション内で2つのプロジェクトがあったとします。どちらにも複数のソースファイルがあります。 このとき一つ目のプロジェクトAのとあるクラスaを、プロジェクトBから参照したいとします。 現在この状況でクラスaの書かれているソースファイルをコピーしプロジェクトBに挿入しているのですが、これでは管理が面倒ですし、スマートではないです。 きっとうまい方法でプロジェクトAのクラスaをプロジェクトBから参照する方法があるのだと思っています。 知っている方よろしくお願いします。

  • 参照するDLLを格納したフォルダをVSS管理したい。

    参照するDLLを格納したフォルダをVSS管理したい。 ソリューションに、プロジェクトA、プロジェクトBがあり、それぞれフォルダ1の中にある DLLを参照しています。 これをソリューションごとソース管理に追加したいのですが、他のメンバがVSSから 落とした場合、コンパイルが通らなくなるので、参照しているフォルダごとVSSに あげたいのですが…。 ソリューションにフォルダは追加できないようなので、VisualStudioからプロジェクトA、 プロジェクトBにそれぞれフォルダを作り、その中にそれぞれDLLを追加するしかないので しょうか? しかし、DLLのバージョンがあがった場合、大変手間です。 すべてのプロジェクトが同じDLLを参照し、かつ、そのDLLもソリューションに追加し、 ソース管理したときに一緒にVSSにアップロードされるようにはできないのでしょうか? ※VisualStudioは2005です。

  • VisualStudio2005でのビルドについて

    VisualStudio2005でのビルドについての質問です。 作成したプログラムを他のPCで起動できるようにビルドする方法で 1:プロジェクト(P)→○○ のプロパティ→構成プロパティ→C/C++ 2:ランタイムライブラリをMT(マルチスレッド)に変更 3:ビルド(B)→構成マネージャー 4:構成をDebug→Releaseに 5:ビルド(B)→○○ のビルド(U) で他のPCでも起動出来ることを確認したんですけど 2:のランタイムライブラリをMD(マルチスレッドDLL)に 変更した場合の他PCで起動できるようにするための方法が 全くわかりません。分かる方いましたらよろしくお願いします。

  • 同じソリューションの別プロジェクトの参照方法は?

    VS2005ProのVB2005を使用しています。 Aというソリューションに BプロジェクトとCプロジェクトがあります。 Bプロジェクトの参照設定にD.DLLを追加しました。 Bプロジェクトに追加されたD.DLLを使用しようと思い Cプロジェクトの参照設定にBプロジェクトを追加したのですが D.DLLがCプロジェクトからは使用できません。 どのように設定を行えばCプロジェクトから Bプロジェクトに追加されたD.DLLが 使用可能になるのでしょうか? よろしくおねがいします。

専門家に質問してみよう