相关疑难解决方法(0)

找不到MSBuild目标包

我想打包我的VS2010 Web应用程序项目,以便使用msdeploy进行部署.在开发机器上我可以使用:

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package
Run Code Online (Sandbox Code Playgroud)

但在我的构建服务器上,我收到此错误:

错误MSB4057:项目中不存在目标"包".

我在构建服务器上缺少什么?

msbuild package web-deployment msdeploy

72
推荐指数
3
解决办法
4万
查看次数

"在Visual Web Developer Publish上找不到有效的AspnetMergePath"?

我想使用Visual Web Developer Express 2010发布一个网站,使用以下设置通过FTP预编译到远程服务器:

  • 仅部署运行此应用程序所需的文件
  • 在发布之前预编译此应用程序
  • 允许网站可更新
  • 没有部署数据库
  • 站点正在部署为文件层次结构,而不是.zip包

我的第一次构建/部署似乎进展顺利,但在我的第二次编译后,我收到以下错误:

Transformed web.config using C:\path_to_site\Web.Debug.config into obj\Debug\TransformWebConfig\transformed\web.config.
Copying all files to temporary location below for package/publish:
obj\Debug\AspnetCompileMerge\Source.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.5\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(132,5): Error : Can't find the valid AspnetMergePath
Run Code Online (Sandbox Code Playgroud)

这是Microsoft.Web.Publishing.AspNetConfigurationMerge.targets文件的一部分内容:

  <Target
      Name="GetAspNetMergePath"
      DependsOnTargets="$(GetAspNetMergePathDependsOn)"
      Condition ="'$(GetAspNetMergePath)' != 'false'">
    <PropertyGroup>
      <AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
      <AspnetMergePath Condition="Exists('$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath>
    </PropertyGroup>
    <Error Condition="'$(AspnetMergePath)' == '' Or !Exists($(AspnetMergePath))"
           Text="Can't find the valid AspnetMergePath" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

编辑:更改发布设置以在发布之前删除所有现有文件毕竟不能解决问题.因为这个原因,我现在假设问题是本地的.

我的web.config中似乎没有AspMergePath标记.我不知道我是否应该手动添加标签.但是,我的项目中存在路径"obj {publish setting}\AspnetCompileMerge\Source".

如果重要,我的项目名称是"TestProject.NET"

感谢您的反馈.

asp.net deployment visual-web-developer publishing visual-studio

24
推荐指数
3
解决办法
2万
查看次数

MvcBuildViews true导致"'/ temp'不是有效的IIS应用程序"错误

设置MvcBuildViewstrue我的.csproj文件后,为了在构建期间编译视图,我收到以下错误:

'/ temp'不是有效的IIS应用程序

我认为这指的'/ temp'是编译视图的路径.这是.csproj文件中的相关部分:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

我使用完整的IIS在我的本地机器上提供这个MVC 5网站(尚未在远程服务器上尝试过这个).我是否需要在IIS中设置一些内容以使其MvcBuildViews正常工作?

iis asp.net-mvc asp.net-mvc-5 visual-studio-2015

11
推荐指数
1
解决办法
1134
查看次数

MSBuild WebFileSystemPublish步骤不在构建服务器上运行

我正在使用以下powershell脚本来构建Web项目:

$tools = @()
$tools += "C:\Windows\System32"                           #xcopy
$tools += "C:\Windows\Microsoft.NET\Framework\v4.0.30319" #msbuild
$env:Path =  [string]::join('; ', $tools)

msbuild ROS.EDI.Web/ROS.EDI.Web.csproj `
  /p:DeployOnBuild=true `
  /p:PublishProfile=$config `
  /p:Configuration=$config `
  /p:Platform=AnyCPU `
  /p:DefineConstants=$constants `
  /property:ApplicationVersion=$env:BUILD_NUMBER `
  /property:ApplicationRevision=$env:BUILD_VCS_NUMBER
Run Code Online (Sandbox Code Playgroud)

脚本完成,msbuild在我的开发机器和构建服务器上运行时没有错误.但是,将Web项目发布到本地文件系统的步骤不会在构建服务器上运行.

这是我的开发机器上msbuild的相关输出

PipelinePreDeployCopyAllFilesToOneFolder:          
  Publish Pipeline Deploy phase Stage ...
WebFileSystemPublish:                              
  ...
Run Code Online (Sandbox Code Playgroud)

并在构建服务器上

PipelinePreDeployCopyAllFilesToOneFolder:             
  Publish Pipeline Deploy phase Stage ...
Package:                                              
  Invoking Web Deploy to generate the package with ...
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚为什么"包"步骤在构建服务器上而不是"WebFileSystemPublish"上运行.是什么导致相同版本的msbuild在两台不同的机器上表现不同?

在您将此标记为重复之前,我已阅读以下内容并尝试使用其解决方案无效:

.net msbuild powershell

1
推荐指数
1
解决办法
1359
查看次数