是否有可能强制C#编译器将所有引用的调用拉出框架并将它们打包成dll甚至单个可执行文件?
我喜欢用C#编写快速的"一次性"应用程序,但是我不想在目标机器上准备好后再安装整个框架.
有谁知道如何获取从MSBuild命令行调用的TARGET(/ t)的名称?可以调用几种类型的目标,我希望在向用户发出通知时使用该属性.
例:
msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV
Run Code Online (Sandbox Code Playgroud)
我想访问ApplicationDeployment我的.Proj文件中的目标词.
我可以访问一个属性吗?有任何线索如何做到这一点?
编辑:我不想也要传递一个属性来获得这个.
更新:这基于使用MSBuild脚本的部署脚本.我的构建服务器不用于部署代码,仅用于构建.构建服务器本身具有可以选择的构建通知.
我从MSI创建了一个包.但是,我需要传递自定义参数.
/i SERVER='xx.yyy.com
Run Code Online (Sandbox Code Playgroud)
以下是我通过阅读choco命令规范尝试的一些事情,但没有一个工作.
> choco install foo -y --params "SERVER='xx.yyy.com'"
> choco install foo -y --params "SERVER=xx.yyy.com"
> choco install foo -y --params "SERVER= xx.yyy.com"
Run Code Online (Sandbox Code Playgroud)
如何将安装选项传递给安装程序?
您使用哪些工具进行自动构建/自动部署?为什么?
你推荐什么工具?
所以我有一个名为update-name的cmdlet,我没有权限进行更改.
我创建了一个名为update-name的函数(与cmdlet同名).如何从具有相同名称的函数中调用cmdlet?
我尝试过一些东西,但似乎都没有.
function update-name {
param([string] something)
#call cmdlet update-name here
}
Run Code Online (Sandbox Code Playgroud)
当它只是功能时,有一种方法可以做到:
$unBackup = 'DefaultUpdateName'
if(!(Test-Path Function:\$unBackup)) {
Rename-Item Function:\Update-Name $unBackup
}
function update-name {
& $unName
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果它是CmdLet则不起作用.
如果使用System.Management.Automation(SMA)实现自定义PowerShell主机,则所有自动变量都是可用的,除非它似乎$PROFILE是空的.怎么会重新创建呢?
它始终在UserProfile +中\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1吗?或者我是否需要担心它在其他地方?
澄清一下,我只关心CurrentUserCurrentHost个人资料.
鉴于此PowerShell脚本:
Write-Output "_Profiles_"
Write-Output "CurrentUserCurrentHost = '$($Profile.CurrentUserCurrentHost)'"
Write-Output "CurrentUserAllHosts = '$($Profile.CurrentUserAllHosts)'"
Write-Output "AllUsersCurrentHost = '$($Profile.AllUsersCurrentHost)'"
Write-Output "AllUsersAllHosts = '$($Profile.AllUsersAllHosts)'"
Run Code Online (Sandbox Code Playgroud)
针对系统PowerShell运行它具有以下输出:
_Profiles_ CurrentUserCurrentHost = 'C:\Users\rob\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1' CurrentUserAllHosts = 'C:\User\rob\Documents\WindowsPowerShell\profile.ps1' AllUsersCurrentHost = 'C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1' AllUsersAllHosts = 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1'
使用自定义C#PowerShell主机(System.Management.Automation.Host.PSHost实现)运行它显示:
_Profiles_ CurrentUserCurrentHost = '' CurrentUserAllHosts = '' AllUsersCurrentHost = '' AllUsersAllHosts = ''
https://github.com/chocolatey/choco/issues/667
这已经在PowerShell v3/System.Managment.Automation(SMA)v3中进行了测试,但它可以在其他PowerShell版本中轻松证明.
我可以使用instanceCreator上下文(aka Func<T>)注册一个注册项,但似乎与RegisterAll没有相同的允许.
这就是我想要做的:
container.RegisterAll<IFileWatcher>(
new List<Func<IFileWatcher>>
{
() => new FileWatcher(
@".\Triggers\TriggerWatch\SomeTrigger.txt",
container.GetInstance<IFileSystem>()),
() => new FileWatcher(
@".\Triggers\TriggerWatch\SomeOtherTrigger.txt",
container.GetInstance<IFileSystem>())
});
Run Code Online (Sandbox Code Playgroud)
我尝试添加基于先前Stack Overflow答案的扩展,以进行多次注册,但似乎最后一个获胜:
public static class SimpleInjectorExtensions
{
public static void RegisterAll<TService>(this Container container,
IEnumerable<Func<TService>> instanceCreators)
where TService : class
{
foreach (var instanceCreator in instanceCreators)
{
container.RegisterSingle(typeof(TService),instanceCreator);
}
container.RegisterAll<TService>(typeof (TService));
}
}
Run Code Online (Sandbox Code Playgroud)
我也很好奇为什么首先需要RegisterAll存在.这是我用过的第一个依赖注入容器中的第一个依赖注入容器.其他只允许您针对服务注册多个类型,然后通过调用Resolve<IEnumerable<TService>>(autofac)或GetAllInstances<TService>(SimpleInjector和Ninject)加载它们.
为了更清楚,我正在尝试构建一个项目列表,我可以将其传递给处理每个单独项目的组合.它遇到与上述相同的问题,因为它属于一组任务,所有任务都根据计划,触发器和事件(Rx)运行.暂时删除寄存器并删除其他一些东西:
container.Register<ITask>(() => new FileWatchTask(
container.GetInstance<IFileSystem>(),
container.GetInstance<IMessageSubscriptionManagerService>(),
configuration,
container.GetAllInstances<IFileWatcher>()));
Run Code Online (Sandbox Code Playgroud)
您可以看到我正在抓取以前注册的文件观察者的所有实例.
我需要知道的是这个问题的一个简单的解决方法以及它何时实现(如果没有,为什么它不会).我也会接受,鉴于Simple …
来自维基百科:
通用编程是一种计算机编程风格,其中算法是根据待指定的后续类型编写的,然后在需要时作为参数提供的特定类型实例化,并由1983年出现的Ada开创.这种方法允许编写常用功能或类型,仅在使用时操作的类型集不同,从而减少重复.
泛型提供了定义稍后指定的类型的能力.您不必将项目转换为类型以使用它们,因为它们已经被键入.
为什么C#和VB有泛型?他们提供了什么好处?使用它们有什么好处?
还有哪些语言也有仿制药?
我想使用巧克力木偶提供程序作为Windows的包源.我的理解是我必须将文件保存到{module}/lib/puppet/provider/package/chocolatey.rb.如果我只是在一个特定模块中使用它,那似乎没问题.但是,如果我想让它可用于我的所有模块呢?
我想使用puppet脚本从ms office的完整设置安装一个单词,excel和outlook,并且只从脚本传递产品密钥.
如果somone可以告诉我命令行命令这样做也会有所帮助.
谢谢
我正在使用Chocolatey安装Python 2.7.11 ,它安装到C:\tools\python2:
choco install python2 -y
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以让我安装Python C:\Python27?
c# ×4
.net ×3
chocolatey ×3
powershell ×2
puppet ×2
windows ×2
blogs ×1
cmdlet ×1
deployment ×1
function ×1
generics ×1
linux ×1
ms-office ×1
msbuild ×1
python ×1
redefinition ×1
vb.net ×1