标签: web-deployment-project

如何使用msbuild/web部署项目删除多个文件?

我有一个奇怪的问题,msbuild如何使用VS2008 Web部署项目,并想知道为什么它似乎随机行为不端.

我需要从部署文件夹中删除一些应该只存在于我的开发环境中的文件.这些文件是在开发/测试期间由Web应用程序生成的,不包含在我的Visual Studio项目/解决方案中.

我使用的配置如下:

<!--  Partial extract from Microsoft Visual Studio 2008 Web Deployment Project -->
<ItemGroup>
  <DeleteAfterBuild Include="$(OutputPath)data\errors\*.xml" /> <!-- Folder 1: 36 files -->
  <DeleteAfterBuild Include="$(OutputPath)data\logos\*.*" />    <!-- Folder 2: 2 files -->
  <DeleteAfterBuild Include="$(OutputPath)banners\*.*" />       <!-- Folder 3: 1 file -->
</ItemGroup>

<Target Name="AfterBuild">
  <Message Text="------ AfterBuild process starting ------" Importance="high" />
    <Delete Files="@(DeleteAfterBuild)">
      <Output TaskParameter="DeletedFiles" PropertyName="deleted" />
    </Delete>
    <Message Text="DELETED FILES: $(deleted)" Importance="high" />
  <Message Text="------ AfterBuild process complete ------" Importance="high" />
</Target>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我进行Web部署项目的构建/重建时,它"有时"会删除所有文件,但有时它不会删除任何内容!或者它将只删除DeleteAfterBuild项目组中三个文件夹中的一个或两个.在构建过程何时决定删除文件时,似乎没有一致性.

当我将配置编辑为仅包含文件夹1(例如)时,它会正确删除所有文件.然后添加文件夹2和3,它开始删除所有文件,如我所愿.然后,在随机时间看,我将重建项目,它不会删除任何文件! …

msbuild web-deployment-project visual-studio-2008

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

将一个PHP项目从Git部署到没有安装Git的服务器

我需要找到一种方法,将存储在git repo中的PHP项目部署到没有安装git的登台和生产服务器.到目前为止我发现的脚本(即Capistrano)需要在目标服务器上使用Git.

不幸的是,我的主机不允许这样,到目前为止唯一的方法是通过标准FTP,我不断丢失文件.这使得不专业的外观.

我希望能够从我的本地git repo进行部署,它将检查目标上的.git文件夹以查看其中的版本,然后使目标服务器备份当前版本,然后仅使用更改来覆盖它正在推送的文件.

PHP中最好带有Web界面的东西.

我问的不多;)

那里的任何人都有这样的东西吗?

php git deployment web-deployment-project

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

Visual Studio 2012和Web部署项目(wdproj)

似乎无法找到任何明确的信息.当我在Visual Studio 2012中打开Visual Studio 2010 SP1解决方案时,它报告wdproj不兼容.什么是wdproj的2012替代品?

web-deployment-project visual-studio-2012

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

我是否需要将.compiled文件复制到生产服务器?

我正在使用部署项目来部署我的ASP.net Web应用程序.构建部署项目时,将重新创建所有.compiled文件.

我是否需要将它们FTP到生产Web服务器?
如果我做了一个小改动,我是否需要再次复制所有网站?

asp.net deployment web-deployment-project

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

使用Web部署项目添加到内置ExcludeFromBuild ItemGroup

我在我的解决方案中添加了一个Web部署项目,以创建我的Web应用程序的干净部署.这大部分按预期工作...即构建源然后将要部署的文件复制到/ Release文件夹(并排除源文件和我的.svn文件夹等内容).

但是现在我想明确地排除其他一些文件(为了简单起见,我们只说一个名为somefile.txt的文件).所以,我将一个项目组添加到wdproj文件中,如下所示:

<ItemGroup>
    <ExcludeFromBuild Include="somefile.txt" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这确实排除了所请求的特定文件,但现在不再排除默认排除的文件.具体来说,现在我的所有svn文件都在Release文件夹中,并且还有一个Source文件夹,它位于同一级别,其中包含所有源文件.

基本上,似乎定义ExcludeFromBuild项目组会覆盖一些内置默认值,而不是添加它们.

不完全是一个显示停止,但不理想......那么,有没有人知道如何简单地将文件添加到默认的ExcludeFromBuild组?或者是使用默认值Vs的情况.手动排除所有东西.删除默认构建后没有的文件?

.net msbuild web-deployment-project

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

Git:应用程序配置和不同的环境

我们使用Git的大多数我们建立在我们的商店的web应用程序,尽管应用程序本身使用多种技术(PHP,Rails的,等等),我们通常对每个站点分期和生产服务器.典型地,这些服务器具有不同的套数据库证书的以及不同的基于环境的配置设置(例如高速缓存).我们的工作流程一般包括保持每个项目中的两个的Git分支:主人,这反映了生产服务器,并分期,这反映了分期.新功能是在分期(或支行)开发和完成和部署后合并回主.

我的问题是关于维护特定于分支和环境的配置文件的最佳方法.我在这里这里看到了类似问题的答案,而且都没有真正满足.主要的两种方法似乎是a)使用.gitignore排除将配置文件保留在git的权限范围之外,或b)编写反射的,环境感知的代码,该代码确定例如基于主机名使用什么数据库凭证.我的问题是a)它只允许一组配置文件存在于代码库中(与当前分支无关),因此其他环境的配置文件会丢失.b)另一方面,似乎只需要以与应用程序功能无关的方式对代码库进行不必要的修改.

理想情况下,我想要一种方法来"锁定"某个分支内的配置文件,这样每当我签出master时,我都会获得主配置文件,每当我检查暂存时,我都会获得暂存配置文件.此外,将分段合并到主服务器不应以任何方式影响主配置文件.到目前为止,我们通过在git root之外包含包含特定于环境的配置文件的文件夹并在部署时手动将适当的文件移动到代码库中来解决这个问题,但这当然是不必要的hackish(并且可能是危险的).

有没有办法用git完成这个?

谢谢你的考虑!

git deployment development-environment web-deployment-project configuration-files

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

在Web部署项目的ASP.NET"Web站点"项目中使用NuGet和*.dll.refresh文件

如果您有一个ASP.NET Web站点项目类型(没有正确的.csproj或.vpproj项目文件而且只是一个松散文件的文件夹),那么当您使用NuGet添加一个包时,它会生成一个*.dll Bin目录中的.refresh文件,用于引用父包文件夹中的包的dll.

例如,如果从程序包管理器控制台执行"install-package elmah",则将Elmah放在项目解决方案目录的packages文件夹中,并将文件Elmah.dll.refresh放在项目的Bin文件夹中.

当我在本地构建项目时,Visual Studio会自动引入刷新文件引用的DLL.该网站和Elmah运行正常.我没有将项目的Bin目录中的Elmah.dll文件签入源代码控制(只检查了刷新文件和packages文件夹).

但是,我正在使用Web部署项目预编译站点并执行web.config替换以进行部署.当以这种方式构建解决方案时,Elmah.dll不会自动被拉入网站项目Bin目录,并且由于缺少DLL,该站点无法正常运行.

NuGet打算如何在这种情况下使用?我想在Bin目录中检查Elmah.dll吗?

asp.net web-deployment-project build-server nuget

10
推荐指数
2
解决办法
5305
查看次数

Web应用程序部署最佳实践:如何管理本地和实时文件?

我正在编写php web应用程序,只需通过FTP部署它们.为了使它工作,我经常做一些调整/调试,因为我无法控制托管我的(免费)Web服务器,所以在我的本地环境中工作的东西可能无法正常工作.

例如,我保留一个单独的php文件,其中包含class_db_myapp.php,它扩展了一个带有特定数据库参数的class_db.php:db name,username,password,它们本地和实时不一样.(有关信息:最近我开始使用git进行版本控制)

随着我的应用程序的发展,一些文件被重命名/删除/创建.什么时候上传新版本,我必须依靠我的记忆来知道我要上传/删除的内容,或者只是删除所有/全部上传.但在第二种情况下,我需要避免删除class_db_myapp.php文件...

我还没有找到适当的解决方案.

此域中的最佳做法是什么?

我可能错过了关于这个主题的现有讨论,如果是这样,请指出我.

谢谢.

php deployment ftp version-control web-deployment-project

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

Web部署项目 - 构建后复制文件

目前我已经设置了一个Web部署项目,它将代码编译到该.\Release文件夹中.在构建之后,我想将文件复制到另一台机器上(因为您构建的任何目录都被删除然后重新创建).

用于定义要复制的文件的ItemGroup设置如下:

<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
    <ReleaseFiles Include=".\Release\**\*" />
    <OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

"网站"是用于多个站点的代码,因此在解决方案中设置了多个Web部署项目.

然后,我有AfterBuild目标来复制文件:

<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <Copy SourceFiles="@(ReleaseFiles)" ContinueOnError="true" SkipUnchangedFiles="true" DestinationFiles="@(ReleaseFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
    <Copy SourceFiles="@(OverrideFiles)" DestinationFiles="@(OverrideFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,ReleaseFiles没有被复制,可能是什么原因造成的?我有错误.\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.,folder\subfolder每次都可以有所不同,但即使没有出现该消息,文件仍然没有被复制.

问题是,它以前有用过.

web-deployment-project visual-studio-2008

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

构建Web部署项目时找不到文件

我有一个Web部署项目,用于构建和压缩Web应用程序项目.我在构建WDP时遇到了很多错误,如下所示:

错误73文件'/Foo.csproj/Properties/Administration/Modules/ACL.ascx'不存在./Foo.csproj/Properties/Administration/ACL.aspx

错误74未知服务器标记'foo:ACL'./Foo.csproj/Properties/Administration/ACL.aspx

这些错误来自Web部署项目,而不是WAP.错误总是遵循相同的模式,首先是找到.ascx时出错,然后是一个相关的错误,说明与之前的ascx相关的服务器标签是未知的(这显然是有意义的).

ascx或aspx中没有错误或警告.

使用<%@ Register %>标记注册控件(而不是在web.config中注册)

可能导致这种症状的原因是什么?


UPDATE

aspnet_compiler.exe使用以下命令运行错误:

C:\ Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v"/Foo.csproj"-p"C:\ Projects\Foo\Foo"-u -f -d obj\Staging\TempBuildDir

并产生以下错误

预编译ASP.NET应用程序的实用程序
版权所有(C)Microsoft Corporation.版权所有./Foo.csproj/Properties/Administration/ACL.aspx(5):错误ASPPARSE:文件'/Foo.csproj/Properties/Administration/Modules/ACL.ascx'不存在.
/Foo.csproj/Properties/Administration/ACL.aspx(7):错误ASPPARSE:未知的服务器标签'foo:ACL'.

在Foo.csproj中,ACL.aspx声明为

<Content Include="Administration\ACL.aspx" />

<!-- Snip -->

<Compile Include="Administration\ACL.aspx.cs">
  <DependentUpon>ACL.aspx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Administration\ACL.aspx.designer.cs">
  <DependentUpon>ACL.aspx</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)

和ACL.ascx为

<Content Include="Administration\Modules\ACL.ascx" />

<!-- Snip -->

<Compile Include="Administration\Modules\ACL.ascx.cs">
  <DependentUpon>ACL.ascx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Administration\Modules\ACL.ascx.designer.cs">
  <DependentUpon>ACL.ascx</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)

我无法理解/Properties/错误路径中路径元素的来源!它不在项目文件中,也没有被送到aspnet_compiler.exe.

解决方案文件和项目文件与工作解决方案完全相同(除了项目名称).

asp.net web-deployment-project

8
推荐指数
2
解决办法
4254
查看次数