我有一个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文件 –