直到两天前,我可以通过右键单击我的项目并单击上下文菜单上的发布按钮来使用Visual Studio 2010的“发布Web”选项。现在,当我尝试做同样的事情时,我得到以下输出:
------ Build started: Project: ELMS,Configuration: Debug Any cpu ------ Build started 8/1/2011 3:08:03 PM. GenerateTargetFrameworkMonikerAttribute: Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files. _CopyOutOfDateSourceItemsToOutputDirectoryAlways: Copying file from "C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll" to "bin\lib\Newtonsoft.Json.Net35.dll". CopyFilesToOutputDirectory: LMS -> C:\SVN\TrakNet\trunk\MTS\bin\LMS.dll Build succeeded. Time Elapsed 00:00:00.04 ------ Publish started: Project: LMS,Configuration: Debug Any cpu ------ Object reference not set to an instance of an object. ========== Build: 1 succeeded or up-to-date,0 Failed,0 skipped ========== ========== Publish: 0 succeeded,1 Failed,0 skipped ==========
这是在尝试发布到本地主机(为了调试目的)
以下是我使用的发布资料的设置:
Publish Method: Web Deploy Service URL: localhost Site/application: default web site/ELMS [x] Mark as IIS application on destination [x] Leave extra files on destination (do not delete)
我已经尝试过:
- Cleaning/rebuilding the project - Deleting the bin folder of the project - Running reg_iis.exe -i - Reinstalling VS2010
但我没有改变已经修复了错误。
任何关于可能导致该问题的洞察将非常感谢:)
编辑:
该问题实际上解决了自己,因为我上次重新启动。我必须重新启动6-7次,因为问题首先表现出来,但这次没有对象引用消息。这是现在的build / publish的日志:
------ Build started: Project: LMS,Configuration: Debug Any cpu ------ Build started 8/3/2011 9:10:12 AM. GenerateTargetFrameworkMonikerAttribute: Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files. _CopyOutOfDateSourceItemsToOutputDirectoryAlways: Copying file from "C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll" to "bin\lib\Newtonsoft.Json.Net35.dll". CopyFilesToOutputDirectory: LMS -> C:\SVN\TrakNet\trunk\MTS\bin\LMS.dll Build succeeded. Time Elapsed 00:00:00.04 ------ Publish started: Project: LMS,Configuration: Debug Any cpu ------ Gather all files from Project items @(IntermediateAssembly). Adding: bin\LMS.dll to bin\LMS.dll bin\LMS.pdb to bin\LMS.pdb Gather all files from Project items @(Content). Adding: Global.asax;lib\Newtonsoft.Json.Net35.dll;MtsSchemas\MtsSchema.xml;Web.config Gather all files from Project output (IntermediateSatelliteAssembliesWithTargetPath). Adding: Gather all files from Project items @(ReferenceCopyLocalPaths,ReferenceComWrappersToCopyLocal,ResolvedIsolatedComModules,_DeploymentLooseManifestFile,NativeReferenceFile). Gather all files from Project items @(AllExtraReferenceFiles). Adding: Gather all files from Project items @(_SourceItemsToCopyToOutputDirectoryAlways,_SourceItemsToCopyToOutputDirectory). Adding: bin\lib\Newtonsoft.Json.Net35.dll Gather all files from Project items @(_binDeployableAssemblies). Adding: Publish Pipeline Collect Files Phase Found The following for Config tranformation: Web.config Creating directory "C:\SVN\TrakNet\trunk\MTS\obj\Debug\TransformWebConfig\transformed\". Publish Pipeline Transform Phase Creating directory "C:\SVN\TrakNet\trunk\MTS\obj\Debug\CSAutoParameterize\transformed\". Copying Web.config to obj\Debug\CSAutoParameterize\original\Web.config. Transforming Source File: C:\SVN\TrakNet\trunk\MTS\Web.config Applying Transform File: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='sqlConnectionString' %}" xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" /> </connectionStrings> </configuration> Output File: obj\Debug\CSAutoParameterize\transformed\Web.config Transformation succeeded Auto ConnectionString Transformed Web.config into obj\Debug\CSAutoParameterize\transformed\Web.config. Creating directory "obj\Debug\Package\PackageTmp". Copying all files to temporary location below for package/publish: obj\Debug\Package\PackageTmp. Copying bin\LMS.dll to obj\Debug\Package\PackageTmp\bin\LMS.dll. Copying bin\LMS.pdb to obj\Debug\Package\PackageTmp\bin\LMS.pdb. Copying Global.asax to obj\Debug\Package\PackageTmp\Global.asax. Copying lib\Newtonsoft.Json.Net35.dll to obj\Debug\Package\PackageTmp\lib\Newtonsoft.Json.Net35.dll. Copying MtsSchemas\MtsSchema.xml to obj\Debug\Package\PackageTmp\MtsSchemas\MtsSchema.xml. Copying C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll to obj\Debug\Package\PackageTmp\bin\lib\Newtonsoft.Json.Net35.dll. Copying obj\Debug\CSAutoParameterize\transformed\Web.config to obj\Debug\Package\PackageTmp\Web.config. Publish Pipeline Deploy phase Pre-Deploy CopyAllFilesToOneFolder Stage Generate source manifest file for Web Deploy package/publish ... Creating directory "obj\Debug\Database". Starting Web deployment task from source:manifest(C:\SVN\TrakNet\trunk\MTS\obj\Debug\Package\LMS.SourceManifest.xml) to Destination:auto(). Updating filePath (default web site/LMS\bin\ELMS.dll). Updating filePath (default web site/LMS\bin\ELMS.pdb). Updating filePath (default web site/LMS\bin\lib\Newtonsoft.Json.Net35.dll). Updating filePath (default web site/LMS\lib\Newtonsoft.Json.Net35.dll). Updating filePath (default web site/LMS\Web.config). Updating setAcl (default web site/LMS). Updating setAcl (default web site/LMS). Successfully executed Web deployment task. Publish is successfully deployed. ========== Build: 1 succeeded or up-to-date,0 skipped ========== ========== Publish: 1 succeeded,0 skipped ==========
就像我说的:不知道有什么改变。我已经手动将DLL移动到网站的虚拟目录,然后只是为了踢我今天早上尝试发布,一切都很好。