WebApplication发布到相关文件系统路径

Mas*_*low 49 asp.net publish visual-studio-2010 vs-web-application-project

我正在设置一个发布到本地测试的相对路径(尤其是xml配置转换).每个开发人员都有自己的签出项目路径,我想设置一个与机器/环境无关的发布.

发布对话框不会暗示其中允许的任何变量或通配符,也不接受obj\publishfile://./obj/publish

有没有办法发布到相关的文件系统路径?

Mic*_*out 50

对于使用Visual Studio 2012和新发布配置文件(Properties/PublishProfiles/Local.pubxml)的用户,可以在文件本身中使用此语法:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish />
    <publishUrl>$(MSBuildThisFileDirectory)..\..\obj\publish</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

请注意,$(MSBuildThisFileDirectory)属性将解析为Local.pubxml目录.从那里你应该遍历到达你需要的地方.


mar*_*wer 17

编辑

对于Visual Studio 2012,此解决方案将无法运行.你应该在这之后看看michielvoo的答案.

原始答案

尝试并尝试后,我找到了解决方案:您可以通过设置使用相对路径

file:///./obj/publish
Run Code Online (Sandbox Code Playgroud)

Publish WebApp对话框中,但您必须使用您正在使用的用户已存在且可写的路径.这样,您可以在本地文件夹或路径相关文件夹中发布Web应用程序.

如果这有帮助,请告诉我.它对我有用.


DKr*_*oot 7

在 Visual Studio 2012 中,只是一条带正斜杠的常规路径:

../../../../../app
Run Code Online (Sandbox Code Playgroud)

这从已发布项目的根目录开始。


Dea*_*ean 5

这在Visual Studio 2013中对我有用:

file:\\..\..\..\Publish
Run Code Online (Sandbox Code Playgroud)

请注意,这不会像原始海报那样发布到obj\publish,而是发布到我想要的系统上的另一个目录(几个文件夹).如果您愿意,可以将其修改为obj\publish.


win*_*yip 5

VS 2015 接受类似的东西

..\..\..\DeployFiles
Run Code Online (Sandbox Code Playgroud)

如果该文件夹丢失,它还会创建该文件夹,以便您的发布设置可以进入源代码管理,但您可以轻松忽略 DeployFiles 文件夹及其内容。