C# Web部署项目是否与x86构建配置配合使用
我需要建立一个网站和它在x86配置中引用的几个DLL。到目前为止,我们一直在使用Web部署项目来创建结果站点的Zip文件及其所有必需的文件。我们需要继续使用WDP,但是,它们似乎在x86构建配置方面存在问题 在我的项目中,当我在Release/x86中构建解决方案时,我得到了以下错误C# Web部署项目是否与x86构建配置配合使用,c#,visual-studio-2008,.net-3.5,msbuild,web-deployment-project,C#,Visual Studio 2008,.net 3.5,Msbuild,Web Deployment Project,我需要建立一个网站和它在x86配置中引用的几个DLL。到目前为止,我们一直在使用Web部署项目来创建结果站点的Zip文件及其所有必需的文件。我们需要继续使用WDP,但是,它们似乎在x86构建配置方面存在问题 在我的项目中,当我在Release/x86中构建解决方案时,我得到了以下错误 Description File Line Column Project
Description File Line Column Project
Error 80 Could not load type 'WwwRooot.Default'. /WwwRooot.csproj/Default.aspx 1 1 WwwRooot.csproj_deploy
web应用程序或任何引用的类库都没有生成错误或警告
我想这可能是我正在从事的项目的特定内容,为了证明我自己错了,我创建了一个包含Web应用程序(c#)的解决方案。然后,我使用Configuration Manager通过复制任意CPU配置来创建x86配置。我检查了属性页面,确保新的配置设置为build为x86,并且是。我构建的解决方案没有错误
接下来,我右键单击Web应用程序,并从上下文菜单中添加了一个WDP。
右键单击WDP并编辑项目文件。此时,我将AnyCPU的所有引用更改为x86,以便WDP具有x86构建的条件。
我在Release/x86中重建了解决方案,一切都很好
接下来,我添加一个类库,使用Configuration Manager为此库创建一个x86配置,为库添加对web应用程序的引用,然后在Release/x86中重新生成all,我收到与上面详细说明相同的错误
WDP是否与x86版本兼容
如果我删除类库(和引用),那么解决方案(包括WDP)就可以正常构建
我使用的是64位Windows 7 Pro上安装了相应WDP的Visual Studio 2008 SP1。现成的Web部署项目(WDP)不适用于x86或x64生成配置。这是因为在这些配置之一下构建的Web应用程序将结果程序集输出到不同的位置,而WDP不知道在那里查找DLL 要使WDP与x86配置一起工作,您需要做一些事情 首先,您的WDP可能没有x86配置,您需要创建一个。使用Visual Studio中的XML编辑器(或任何文本编辑器)编辑部署项目,在文件顶部附近会看到一个
标记(通常是第二个),带有条件Debug | AnyCPU
,如下所示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>.\Debug</OutputPath>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
</PropertyGroup>
现在保存文件并打开configuration manager(构建菜单>配置管理器),然后检查部署项目是否具有x86配置
现在,使用文本编辑器编辑Web应用程序项目文件,并在Debug | x86
配置中找到outputPath
元素。它的值应为Bin\x86\Debug
。这需要更改为Bin
:
<!-- Before -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>Bin\x86\Debug\</OutputPath>
<!-- After -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>Bin\</OutputPath>
Bin\x86\Debug\
垃圾箱\
保存、关闭并重新加载Web应用程序项目。我们现在已经指示Web应用程序将其DLL放在WDP希望找到它们的位置
将生成配置设置为x86
,然后生成项目
冲洗并重复,以便发布和任何其他构建配置。试试这个
将此命令放在web项目的编译后事件中
xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\" /Y
此命令将文件从bin\x86\Debug复制到bin
它将与发布配置一起工作
xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\" /Y