Azure 使用云配置(ServiceDefinition.csdef)文件的配置创建Nuget包
我想为我的附加组件构建Nuget软件包,最终用户将使用该软件包作为启动任务进行安装,然后他们将在WindowsAzure平台上上载应用程序 让我们看一个简单的web应用程序和一个现在使用Nuget的云项目,最终用户将添加附加包,它将在web应用程序项目中添加2个文件(exe和config),并将启动任务添加到云项目的ServiceDefinition.csdef,如图所示 我如何创建这种类型的Nuget Pacake 提前谢谢 更新: 我已经试着按照NICK的答案来做了,但是我在云项目中遇到了问题,如下图所示。 我得到的错误如下所示Azure 使用云配置(ServiceDefinition.csdef)文件的配置创建Nuget包,azure,nuget-package,Azure,Nuget Package,我想为我的附加组件构建Nuget软件包,最终用户将使用该软件包作为启动任务进行安装,然后他们将在WindowsAzure平台上上载应用程序 让我们看一个简单的web应用程序和一个现在使用Nuget的云项目,最终用户将添加附加包,它将在web应用程序项目中添加2个文件(exe和config),并将启动任务添加到云项目的ServiceDefinition.csdef,如图所示 我如何创建这种类型的Nuget Pacake 提前谢谢 更新: 我已经试着按照NICK的答案来做了,但是我在云项目中遇到了
还有一个问题,如果我用命令行安装NuGET包,那么我如何考虑所有WEBROLE项目在解决方案中添加EXE和配置文件??< /P> < P> NuGET包基于一个约定工作:
对于exe和config,您可以执行以下操作:- mkdir lib(用于exe)
- mkdir内容(用于配置)
<file src="content\my.exe" target="content\my.exe" />
我希望这能有所帮助
--尼克谢谢尼克的帮助。它工作得很好,但是我对云项目中的webrole 2有一个问题。你能看看我更新的问题吗?为了清楚起见,你想在两个Web角色中都添加一个启动任务吗?如果是这样,您可以尝试以下操作:
foreach($xml.ServiceDefinition.ChildNodes中的i){#在此处添加任务逻辑}
<add key="test" value="myval"/>
<add key="test" value="myval2"/>
<add key="test" value="myval"/>
<add key="test" value="myval2"/>
param($installPath, $toolsPath, $package, $project)
#Modify the service config - adding a new Startup task
$svcConfigFile = $DTE.Solution.Projects|Select-Object -Expand ProjectItems|Where-Object{$_.Name -eq 'ServiceDefinition.csdef'}
$ServiceDefinitionConfig = $svcConfigFile.Properties.Item("FullPath").Value
[xml] $xml = gc $ServiceDefinitionConfig
#Create startup and task nodes
# So that you dont get the blank ns in your node
$startupNode = $xml.CreateElement('Startup','http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition')
$taskNode = $xml.CreateElement('Task','http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition')
$taskNode.SetAttribute('commandLine','my.exe')
$taskNode.SetAttribute('executionContext','elevated')
$taskNode.SetAttribute('taskType','simple')
$startupNode.AppendChild($taskNode)
#Check to see if the startup node exists
$modified = $xml.ServiceDefinition.WebRole.StartUp
if($modified -eq $null){
$modified = $xml.ServiceDefinition.WebRole
$modified.PrependChild($startupNode)
}
else{
$nodeExists = $false
foreach ($i in $xml.ServiceDefinition.WebRole.Startup.Task){
if ($i.commandLine -eq 'my.exe'){
$nodeExists = $true
}
}
if($taskNode -eq $null -and !$nodeExists){
$modified.AppendChild($taskNode)
}
}
$xml.Save($ServiceDefinitionConfig);