我有一個Asp.Net網站(沒有.csproj文件)。CruiseControl.net,SVN,網站和依賴關係
本網站的源代碼由SVN控制。
我從源代碼管理中排除了bin文件夾。
所有外部程序集都是從SVN根目錄下的DLL文件夾引用的。
我嘗試通過cruisecontrol.net部署此網站。
問題:
巡航控制系統負載均來自顛覆文件,它msbuild.exe違背了.sln文件。這會導致一個錯誤:找不到外部程序集(因爲bin文件夾被排除)。
我迄今發現的解決方案:
我的MSBuild任務之前,請DLL的ROBOCOPY從我的源代碼控制到/ bin文件夾。
有沒有其他解決方案? (我不想每次將外部程序集添加到我的項目時編輯我的配置)。
編輯:
我終於在這裏使用的「刷新文件」技術是我用來創建他們
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的「使用msbuild」,不是嗎? – David
是的我是,我會嘗試.refresh文件 –