電子書籍の厳選無料作品が豊富!

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


宜しくお願い致します。

「VisualStudioでのバージョン更」の質問画像

A 回答 (1件)

共有する属性だけをソリューション直下のSharedAssemblyInfo.csに集めて,


そのファイルをプロジェクトからリンクする形で取り込む,ということをやったことがあります。

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

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

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

お礼日時:2014/09/17 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!