为什么我的项目参考不会被Visual Studio中的Web部署包装拾取?

时间:2011-07-21 20:46:27

标签: asp.net visual-studio-2010 package msdeploy

我有一个包含两个项目的Visual Studio 2010解决方案:

  1. ASP.NET MVC 3 Web应用程序。
  2. 班级图书馆。
  3. MVC应用程序具有对类库的项目引用。

    当我使用Visual Studio中的“构建部署包”选项来使用我的Web应用程序构建zip文件进行部署时,它不包含类库。因此,在部署之后,我得到了由于缺少装配而导致例外。

    我已经验证项目引用设置为“Copy Local = true。”当您构建和调试网站时,工作正常,类库位于bin文件夹中。只有在构建部署包时,它才会丢失。

    如果我从项目引用切换到直接程序集引用,指向bin / Debug / ClassLibrary.dll文件,程序包将正确构建并包含类库。 我只在项目参考时看到问题。

    如何将类库作为项目参考以正确包含在Web应用程序包中?

2 个答案:

答案 0 :(得分:1)

如果您从VS.NET进行部署,我不知道如何解决这个问题,但我确实从MSBuild脚本中找到了解决方法。

在MSBuild中为.csproj创建MSDeploy / WebDeploy .zip包的基本语法是这样的:

<MSBuild Projects="Path\To\Project.csproj"
         Targets="ResolveReferences;Package"
         Properties="Configuration=Release;DeployOnBuild=true;DeployTarget=Package;PackageLocation=Path\To\Output.zip" />

注意Targets =“ResolveReferences; Package”。我从Targets =“Package”开始,但只有一半有用。

显然,如果要获取从项目引用创建的程序集,则需要首先调用ResolveReferences。只是构建包不会这样做,并且您将缺少作为项目引用的结果包含在项目输出中的任何程序集。

答案 1 :(得分:0)

只是在类库中拥有客户端配置文件这是愚蠢的吗?