私はAsp.Net Webサイトを持っています(.csprojファイルはありません)。CruiseControl.net、SVN、Webサイトおよび依存関係
このウェブサイトのソースコードは、SVNによって管理されています。
ソース管理からbinフォルダを除外しました。
すべての外部アセンブリは、私のSVNのルートにあるDLLフォルダから参照されます。
私はcruisecontrol.netでこのウェブサイトを展開しようとしています。
問題:
クルーズコントロール負荷転覆からのすべてのファイル、それはの.slnファイルに対してのMSBuild.exeを実行します。これにより、エラーが発生します:外部アセンブリを見つけることができません(binフォルダが除外されているため)。
私がこれまでに見つかったソリューション:
を私のMSBuildタスクの前に、/ binフォルダに私のソース管理からDLLのrobocopyをを行います。
他に解決策はありますか? (プロジェクトに外部アセンブリを追加するたびに構成を編集する必要はありません)。
EDIT:
私は最終的にここに「リフレッシュファイル」技術を使用し、私は彼らに
class Program
{
private const string PATH_BIN = @"F:\WebSite\bin\";
private const string PATH_REFERENCE = @"C:\DLL\";
static void Main(string[] args)
{
foreach (string aFile in Directory.GetFiles(PATH_BIN))
{
if(!aFile.EndsWith(".dll"))
continue;
string pathRefreshFile = aFile + ".refresh";
if(File.Exists(pathRefreshFile))
continue;
string referenceFilePath = PATH_REFERENCE+Path.GetFileName(aFile);
if (!File.Exists(referenceFilePath))
continue;
using (StreamWriter sw = new StreamWriter(pathRefreshFile))
{
sw.Write(referenceFilePath);
}
}
}
}
ここでの問題は、私はMSBuildのから構築していますので、.refreshファイルは我々が同様のMSBuildから構築している、と彼らは私たちのシステムで使用されている –
使用されていないということです。 msbuildが.slnファイルを指していますか?実際には、私が間違っていない限り、Visual Studioのits'efでもmsbuildを使用していますか? – David
はい、私は、リフレッシュファイルを試してみます –