こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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を閉じて再度ソリューションを開くと添付の画像のエラーがでました。
この現象の解決方法がありましたら教えていただきたいです。
また、別の方法でバージョンをまとめて変更できる方法がありましたらそちらでも結構なので教えていただけたら嬉しいです。


宜しくお願い致します。

投稿日時 - 2014-09-16 16:58:05

QNo.8756793

困ってます

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

共有する属性だけをソリューション直下のSharedAssemblyInfo.csに集めて,
そのファイルをプロジェクトからリンクする形で取り込む,ということをやったことがあります。

1. [プロジェクト] - [既存項目の追加]と辿り,[既存項目の追加]ダイアログを開く
2. SharedAssemblyInfo.csを選択する
3. [開く]ボタンの右側の三角を押し,[リンクとして追加]を選択する
という手順でリンクを追加できます。

SharedAssemblyInfo.csには,AssemblyInfo.csのコードのうち,
AssemblyVersionやAssemblyCopyrightなどの属性を移動しておくことになると思います。

投稿日時 - 2014-09-16 20:38:34

お礼

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

投稿日時 - 2014-09-17 10:16:37

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問