4

我有一个ASP.NET网站的解决方案文件。MSBuild:构建asp.net 4.0网站:.metaproj -files

当我建立与使用.NET 4.0 Beta 2中的溶液

“C:\ Windows \ Microsoft.NET \框架\ v4.0.21006 \ MSBuild.exe” d:\ mypath中\ MySolution.sln

一切工作正常,没有错误。然后我尝试建立与CruiseControl的.NET任务(的MSBuild脚本运行一个服务),相同的解决方案失败,同样的解决方案:

d:\ mypath中\ MyWebSite.metaproj(,):errorMSB4025:本项目文件无法加载。找不到文件'D:\ MyPath \ MyWebSite.metaproj'。

当然,没有这样的文件。我猜* .metaproj是一个类似.csproj的msbuild文件为网站动态生成...

但我不知道如何解决错误...我试图谷歌metaproj文件没有运气。我尝试手动创建文件,我插入<项目>与<任务名称=“重建”>和编译没有引发任何错误,但我猜测该网站没有编译。

同一台机器有两个框架的.NET 3.5和.NET 4.0项目和环境变量。

回答

1

Visual Studio 2010的最终版本中修正了这个错误。

+0

可悲的是我现在再次用2010/v4.0获得它 – jcolebrand 2012-03-12 16:16:04

1

我遇到了与tfs 2008构建服务器相同的问题。一旦我将tfs builder服务器配置切换到使用4.0 msbuild,我开始得到这个相同的问题。如果我手动运行msbuild并且它在日志中说它构建了一个metaproj文件,但是在自动构建过程中失败了。

拉斯

0

我第一次创建my_solution.sln旁边my_website.metaproj看起来像这样:

<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <Target Name="Build"> 
    <Message Text="Building...but nothing to build" /> 
    </Target> 

    <Target Name="Test"> 
    <Message Text="Testing...but nothing to test." /> 
    </Target> 

    <Target Name="Clean"> 
    <Message Text="Cleaning...but nothing to clean." /> 
    </Target> 

</Project> 

然后抱怨没有找到sgen.exe。我在构建代理上安装了Visual Studio 2010 Beta 2,看起来它现在正在工作。

[编辑] 这其实并没有完全奏效。它并没有将网站项目的依赖关系拉到它的bin目录中。

我们最终做的是拼凑升级构建过程,并用标准模板的变体重新构建过程。这工作得很好。

+0

嗯..正如我所描述的一些信息,我加了重建任务也。但它没有帮助:实际上,我使用TargetPath属性(以.sln文件形式)发布网站的发行版。使用这个空任务它没有建立网站。 此外,我使用CC.NET,而不是TFS,所以没有“标准模板”。 – 2009-10-28 15:14:39

2

如果您可以摆脱解决方案文件中的项目依赖关系,有一种解决方法。您可以将项目依赖项保留在项目文件中,但将其从解决方案文件中删除。看到这个链接这个
Answer

+0

这也适用于我们。 – Mark 2009-11-02 20:54:32

+1

网站没有项目文件。这些引用存储在web.config中(如果它是一个Web应用程序)。我目前正在使用没有web.configs的网站。 我会尝试将这些项目引用转换为二进制引用,但有40个网站,所以我还没有时间来测试。 – 2009-11-23 14:42:29

1

我读CruiseControl的讨论,并试图运行相同的命令CruiseControl.net不和我解决了,让我感动我的

空间在目录中的名称,使MSBuild的巡航控制下失败我的情况! ??

因此,我明确指出巡航控制没有空格的目录。 下面的例子。

<Project name="ProjectNameHere"> <workingDirectory>c:\dev\work\ProjectNameHere\WorkDir</workingDirectory> <artifactDirectory>c:\dev\work\ProjectNameHere\Artifacts</artifactDirectory> ...

+0

嗯......也许“映射网络驱动器”\\ localhost \ c $ \ ...会有所帮助。 反正,对不起,我有很多其他的事情要做,所以我没有时间去测试每一个可能的解决方案......我希望.NET 4.0 RC或最终版本能够解决这个问题。 – 2010-02-02 09:30:06