我在观看Scott Hanselman 关于网络部署的视频后,刚刚在VS2010 RC的.NET 3.5项目中启用了配置转换.不幸的是每次我发布我现在都会收到以下错误:
"TransformXml"任务意外失败.System.UriFormatException:无效的URI:URI为空.在System.Uri.CreateThis(String uri,Boolean dontEscape,UriKind uriKind)
,位于Microsoft.Build.BackEnd.TaskExecutionHost的Microsoft.Web.Publishing.Tasks.TransformXml.Execute()的System.Uri..ctor(String uriString).微软.Build.BackEnd.ITaskExecutionHost.Execute()在Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,TaskHost taskHost,ItemBucket bucket,TaskExecutionMode howToExecuteTask,Boolean&taskResult)
如果我采用一个全新的VS2010 Web应用程序,默认情况下我已经有配置转换,我没有问题,所以我怀疑我的问题与项目有关.有没有人遇到过这个问题或对修复有任何想法?
asp.net configuration publishing visual-studio-2010 visual-studio
我试图点击该项目并发布它.但我得到的是:
Run Code Online (Sandbox Code Playgroud)Error 94 An error occurred while signing: Failed to sign斌\调试\ app.publish\setup.exe文件.SignTool错误:签名者的证书对签名无效.SignTool错误:尝试签名时发生错误:bin\Debug\app.publish\setup.exe CHATT3R
这是什么意思?
我正在使用Team city中的MSBuild运行器来构建我的项目并将其部署到临时环境.一切都很完美,除了它不断移除位于项目根目录中的我的存储库文件夹.
在Visual Studio 2010中,发布配置文件对话框中有一个复选框,显示"在目标上保留额外文件(不要删除)"
有没有办法用MSBuild完成同样的事情?
<Target Name="Deploy" DependsOnTargets="Build;Test">
<MSBuild Projects="MyProject.sln" Properties="Configuration=$(Configuration); username=username; password=password; DeployOnBuild=True; DeployTarget=MSDeployPublish; MSDeployPublishMethod=WMSVC; MSDeployServiceUrl=https://DEVWEB01:8172/MsDeploy.axd; DeployIISAppPath=MyProject.$(Configuration); AllowUntrustedCertificate=True;"/>
</Target>
Run Code Online (Sandbox Code Playgroud) 我想发布我的项目但是:
ERROR1
Web部署任务失败.(无法完成对远程代理URL'https:// xxxxx:xxxx/msdeploy.axd?site = VoIP'的请求.)
无法完成对远程代理URL"https:// xxxxx:xxxx/msdeploy.axd?site = VoIP"的请求.请求已中止:请求已取消.无法使用已与其基础RCW分离的COM对象.
有人知道什么是错的吗?
我有一个在Visual Basic 2008 Express中创建的项目.我把它从其他人的C#项目转换而来,但它确实有效.它有几个DLL依赖项.我去发布我的项目,所以我可以将它安装在另一台机器上,对于每个DLL,我收到一个错误:"必须强化签名才能被标记为先决条件." 我已经做了一些研究,但是我找不到很多,而且我发现了什么,我真的不明白.这个错误是什么意思?解决它的最佳方法是什么?另一件事:我花了很长时间才能正确引用我的所有dll,所以我更喜欢解决方案与移动DLL无关,因为这可能会破坏我的主项目中的功能.
Goetz的Java Concurrency in Practice,第41页提到了this在构造过程中引用如何逃脱.一个"不要这样做"的例子:
public class ThisEscape {
public ThisEscape(EventSource source) {
source.registerListener(
new EventListener() {
public void onEvent(Event e) {
doSomething(e);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这this是通过doSomething(e)引用封闭ThisEscape实例的事实"逃避" .可以通过使用静态工厂方法(首先构造普通对象,然后注册侦听器)而不是公共构造函数(完成所有工作)来解决这种情况.这本书继续:
从构造函数中发布对象可以发布未完全构造的对象.这是真实的,即使是公布在构造函数中的最后一条语句.如果
this参考在构造期间逃逸,则认为该对象未正确构造.
我不太懂.如果发布是构造函数中的最后一个语句,那么之前没有完成所有构建工作吗?怎么会是this由当时不是有效?显然有一些伏都教在那之后继续,但是什么?
这几乎是链接构建配置与发布配置文件的重复,但该问题没有得到解答......
我有2 1单击我的Web应用程序的发布配置:
如果我选择Build=> Configuration Manager=> Release然后单击"发布"按钮,我的应用程序将以发布配置发布(反之亦然) - 不考虑当前选择的发布配置文件.
但我真正想要的是......
从1单击"发布"设置中设置相应的"构建配置".Test Server应与我的调试设置Production Server一起发布,并应与发布设置一起发布.
我不必在Configuration Manager中进行更改.但是我愿意.
所以,我有两个问题:
我只是做错了吗?根据发布设置中的一个小注释,说明"使用构建配置管理器更改配置",这似乎正是它的工作方式.

是否有另外一种方法可以拥有2个发布配置文件,一个具有Debug配置,另一个具有Release配置?
我使用调试/发布构建配置的唯一方法是我的Config Transforms具有不同的连接字符串.所以,替代方案,但仍然可以接受1点击,发布解决方案. :-)
web-config publishing .net-4.0 visual-studio-2010 one-click-web-publishing
我想使用Visual Web Developer Express 2010发布一个网站,使用以下设置通过FTP预编译到远程服务器:
我的第一次构建/部署似乎进展顺利,但在我的第二次编译后,我收到以下错误:
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
我正在决定是否将文件添加到版本控制.它的名字以.pubxml.user.结尾.谁能告诉我它是什么?文件的填充名称是<name of our web server>.pubxml.user.它显然与发布配置有关.
该项目使用Visual Studio 2013在ASP.NET MVC和C#中.该文件位于该PublishProfiles文件夹中.
publishing ×10
asp.net ×4
c# ×3
.net-4.0 ×1
.net-core ×1
concurrency ×1
deployment ×1
iis-8 ×1
java ×1
msbuild ×1
msdeploy ×1
this ×1
vb.net ×1
web-config ×1
winforms ×1